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. 从5个方面让你真正了解Java内存模型

    前言 首先我们在了解java内存模型之前先看一下计算机内存模型,理解了计算机内存模型的话后面在看JMM就会简单的多. 计算机内存 计算机是由CPU.主存.磁盘等组成的(简单引出问题熬)我们都知道计算机 ...

  2. QQ音乐接口api,包括付费音乐、无损音乐、高品质音乐地址解析接口api

    QQ音乐网站所有音乐(包括付费.无损等版权音乐解析接口地址url). mp3 普通高品 http://dl.stream.qqmusic.qq.com/M5000012gqVh4fFvVK.mp3?v ...

  3. 基于C# WPF框架的贪吃蛇

    游戏开始界面 游戏开始 共有两条蛇,吃到红色食物加1分,吃到绿色毒食物减1分,知道0不减: 碰到墙壁游戏结束,碰到对方游戏结束,碰到自己游戏结束 此游戏通过Canvas画布布局,通过C#代码实现 游戏 ...

  4. C#程序编写高质量代码改善的157个建议【4-9】[TryParse比Parse、使用int?来确保值类型也可以为null、readonly和const、0值设为枚举的默认值、避免给枚举类型的元素提供显式的值、习惯重载运算符]

    建议4.TryParse比Parse好 如果注意观察,除string之外的所有的基元类型.会发现它们都有两个将字符串转换为自身类型的方法:Parse和TryParse.以类型double为例. 两者最 ...

  5. django 用户与权限管理

    django中使用content_type表进行存储app与model的关系.在permission表中设立了name(权限的名字,中英文均可)content_type_id(与content_typ ...

  6. docker容器和虚拟机的比较

    containers:容器是在应用层的抽象化,多个容器能够运行在同一台机器上,和其他容器共享操作系统的核,每个容器运行都独立的运行在用户的空间内.容器需要的空间比虚拟机要小(容器镜像的大小一般为MBs ...

  7. openshift安装部署

    前置准备工作: 1.每台主机准备好有公钥在 /root/.ssh/authorized_keys,私钥则存放在第一台主机的/root/.ssh/id_rsa 2.确定每台主机的私网IP地址是固定的. ...

  8. 使用Condition

    /** * ReentrantLock使用Condition对象来实现wait和notify的功能* 使用Condition时,引用的Condition对象必须从Lock实例的newCondition ...

  9. xms新版发布

    基于.net core 3.0.101 github地址: https://github.com/migomiddle/xms 码云地址: https://gitee.com/migomiddle/x ...

  10. 【重要更新】Senparc.Weixin SDK v6.5 升级说明(支持 .NET Core 3.0 及分布式消息上下文)

    Senparc.Weixin SDK v6.5 开始支持 .NET Core 3.0,并将微信消息上下文进行了大幅度的重构,支持了使用分布式缓存存储上下文信息,这意味着在分布式系统中,现在 Senpa ...