Notes for c++ learning

程序根据什么特征来区分调用哪个重载函数?
只能靠参数而不能靠返回值类型的不同来区分重载函数。
编译器根据参数为每个重载函数产生不同的内部标识符

  • 在Visual Studio .Net开发环境中,在代码编辑器内输人对象的名称后将自动显示出对应的属性、方法、事件列表,以方便选择和避免书写错误,这种技术被称为_智能感知_
  • 一个解决方案可以有多个项目
  • CLR是公共语言运行库
  • 跟踪句柄——(gcnew)相当于c语言的指针
  • 引用不分配内存——不能为空,因为不是定义一个变量,只表示是该用户名是目标变量名的一个别名。 引用前面用&符号,引用使用很简单比较指针(某一变量的位置)。 引用是给某一变量多取一个别名,当建立引用时,程序用另一个变量或对象目标的名字初始化它。缺点是定义之后不能改变8
  • 托管代码和非托管代码:为CLR而编写以及使用CLR服务的代码叫"托管代码",而那些未使用CLR服务的代码(也就是你多年以来一直编写的代码),依赖于平台和语言叫"非托管代码"。
  • rand()_生成伪随机数;rand()%max表示产生0-max的随机数;a+rand()%(b-a+1)表示产生【a,b】之间的整数。产生不重复的随机数
  • array与arraylist:array是本地的程序组件或者数据结构,但是arraylist是一个来自Java集合类的类,一个接口(API);array仅提供一个length属性来告诉你array里有多少个插槽,例如可以存储多少个元素。但arraylist提供一个size()方法来告诉你当前时间点存储了多少个元素;array还可以设置多维数组,但是arraylist并不支持你指定维度。
  • 值类型的对象包含的是自身的数据内容。引用是引用对象的跟踪句柄,包含的是对象的地址
  • 面向对象:类的几个特殊函数:类的构造函数、复制构造函数、析构函数、终结器,构造函数:C++规定,一个类的构造函数必须与相应的类同名,它可以带参数,也可以不带参数,与一般的成员函数定义相同,可以重载,也可以有默认的形参值。构造函数不能指定函数返回值的类型,也不能指定为void类型。默认构造函数:实际上,在类定义时,如果没有定义任何构造函数,则编译自动为类隐式生成一个不带任何参数的默认构造函数,由于函数体是空块,因此默认构造函数不进行任何操作,仅仅为了满足对象创建时的语法需要。
  • 与构造函数相对应的是析构函数。析构函数是另一个特殊的C++成员函数,它只是在类名称前面加上一个“~”符号(逻辑非),以示与构造函数功能相反。每一个类只有一个析构函数,没有任何参数,也不返回任何值。
  • 析构函数的功能是用来释放一个对象,在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。在_C++/CLI_中,还提供另一种清理机制,称为finalizer(译为“终结器”)。定义终结器的方式与定义析构函数的方式类似,定义类的终结器的方式与定义析构函数的方式类似,其区别在于需要通过“!”符号来代替析构函数中的“~”符号。
  • 几个特殊函数调用顺序:
    1.对象的创建:开始之初,调用构造函数,构造对象
    2、默认构造函数:
    3、对象的析构:使用完毕、调用析构函数,释放对象所占用空间
    4、终结器函数:终结器是在销毁该引用类对象时由垃圾回收器自动调用的。
    5、复制构造函数(拷贝构造函数):管理复制对象时的空间

  • 接口实现多继承:比类的内涵更广。

  • 9.20
  • 虚函数——virtual《函数名》(形参表){函数体}:为了实现某一功能而假设的函数
  • 在一个派生类中重新定义基类的虚函数是函数重载的另一种特殊形式,但它不同于一般的函数重载。一般的函数重载,只要函数名相同即可,函数的返回类型及所带的参数可以不同。要求所带的参数可以区分是调用哪个重载函数。当重载一个虚函数时,即在派生类中重新定义此虚函数时,则要求函数名、返回类型、参数个数、参数类型以及参数的顺序都与基类中虚函数原型完全相同,不能有任何的不同。虚函数在调用的时候根据当前对象,优先调用对象本身的虚成员函数。这有点像名字支配规律,不过虚函数是动态绑定的,是在执行期“间接”调用实际上欲绑定的函数。也就是说程序运行到此处才动态确定。

  • 10.19

  • show()方法显示窗体后,不影响该程序其他窗体的使用。显示窗体后,后面的代码会继续执行
    showDialog()方法显示窗体后,只能在此窗体上进行操作。只有当窗体关闭之后,后面的代码才会继续执行。
  • nullptr是一个字面值常量,类型为std::nullptr_t,空指针常数可以转换为任意类型的指针类型。
  • Trim()功能:删除字符串中多余的空格,但会在英文字符串中保留一个作为词与词之间分隔的空格。

c++.net学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. NTFS在openwrt下的挂载问题

    在openwrt上市可以挂载ntfs分区的,但是如果原来如果搞过win,或者异常关机,那么会遇到以下的错误: root@Openwrt:/etc/config# mount -t ntfs -o rw ...

  2. 安装Visual Studio Code并汉化

    安装很简单,直接点击安装文件,然后一直点击next就可以了.这款软件是免费的,不需要破解. 下载地址 这里需要使用快捷键[Ctrl+Shift+P],在弹出的搜索框中输入[configure lang ...

  3. springIOC及设计模式

    一.IOC的概念: 控制反转(inversion of control)和依赖注入(dependency injection)其实是同一个概念.当某个方法需要另外一个对象协助的时候,传统的方法就是有调 ...

  4. 微信小程序—支付宝身份验证(支付宝小程序)

    查看应用:https://open.alipay.com/platform/keyManage.htm  这里找到您调用接口的应用 支付宝身份验证快速接入:https://docs.open.alip ...

  5. 系统优化——建立linux回收站机制

    前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么 ...

  6. Cross-Site Scripting:Reflected 跨站点脚本:获取

  7. c++多个文件中共用一个全局变量 变量跨文件使用

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12047602.html 虽然很多博客都写过这个了 但是 我还是继续补充的详细一点吧  毕竟很多 ...

  8. SpringMVC框架之第二篇

    6.参数绑定(重点) Springmvc作为表现层框架,是连接页面和service层的桥梁,它负责所有请求的中转.怎么从请求中接收参数是重点,这也体现了我们刚开始说的Springmvc的第一个作用:“ ...

  9. LINE 项目总结

    前段时间做了一个“国外的公众号”,为什么说是国外的公众号呢,因为他和微信的公众号有很多共通之处.当然了也有很多不同的地方,第一个要说的就是,我在打印信息的时候,使用的alert()弹窗,但是后台才发现 ...

  10. Android Studio 使用Memory Monitor进行内存泄露分析

    在使用Android Studio进行内存泄露分析之前,我们先回顾一下Java相关的内存管理机制,然后再讲述一下内存分析工具如何使用. 一.Java内存管理机制 1. Java内存分配策略 Java ...