• IO类属于不能被拷贝的类型,因此只能通过引用来传递。同时读取和写入操作都会改变流的内容,所以接收的是普通引用。
  • 类内的友元声明仅仅指定了访问的权限,需要在友元声明之外再专门对函数进行一次声明。
  • 可变数据成员永远不会是const,即使它是const对象的成员。
  • 友元关系不存在传递性,父类是友元类,子类不继承。
  • 类在声明之后定义之前是不完全类型。可以定义指向这种类型的指针或引用,也可以声明以不完全类型作为参数或者返回类型的函数。
  • 成员初始化顺序与其在类定义中出现的顺序一致。
  • 委托构造函数,使用类内其他构造函数执行其初始化过程,如果被委托的构造函数体有代码,执行完这些代码才将控制权交还给委托者,执行委托者的函数体。
  • 编译器只会自动进行一步类类型转换
  • explicit构造函数只能用于直接初始化,而不能用于拷贝形式的初始化。但是仍然可以显式地进行转换。

值初始化

int型初始化为0,string初始化为空串。

(1)在数组初始化的过程中,如果提供的初始值数量少于数组的大小,剩下的元素会进行值初始化;

(2)当我们不使用初始值定义一个局部静态变量时;

(3)当我们通过书写形如T()的表达式显示地请求值初始化时;

默认初始化

定义变量时没有指定初始值,默认值到底是什么由类型决定,跟定义的位置也有关系。

函数体之外的被定义成0,定义在块作用域内部的内置变量,值是未定义的。不能直接使用

(1)当我们在块作用域内不使用任何初始值定义一个非静态变量时,

(2)当一个类本身含有类类型成员且使用合成的默认构造函数时;

(3)当类类型的成员没有在构造函数初始值列表中显示地初始化时;

一个类对象进行默认初始化和值初始化,必须要有相应的默认构造函数。

聚合类,可以使用花括号括起来的成员初始化列表

所有成员public,没有定义任何构造函数,没有类内初始值,没有基类,没有虚函数。

通常情况类的静态成员不应该在类的内部初始化。除了const static或者constexpr static不需要分别定义。

即使常量静态数据成员在类内被初始化了,也应该在类外部定义一下该成员。

最新文章

  1. Emacs 配置文件
  2. 【转】SQL删除重复数据方法,留着备用
  3. Spring配置文件中别名的使用
  4. git和github使用方式
  5. perl 箭头操作符
  6. Laravel 流程分析——整体概论
  7. scala学习之第二天:可变容器与不可变容器的特性与应用
  8. JavaScript入门培训材料(Copy至此以作备份)
  9. 从一个action地址获取信息
  10. python 解析json
  11. 获得创建临时表的session id
  12. 使用gSoap做一个简单的CS系统
  13. 01.redis初识
  14. 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?
  15. Python模块安装与读取Excel
  16. 用python在后端将数据写入到数据库并读取
  17. MAC洪水攻击
  18. 【基础】selenium中元素定位的常用方法(三)
  19. 【colaboratory】ModuleNotFoundError: No module named 'forward'
  20. [ZT] 医学图像分析相关的会议

热门文章

  1. Android中aar和jar文件的认识
  2. C# 自动发送邮件被系统当做垃圾邮件退回的处理方法
  3. python 的StringIO
  4. JAVA第5次作业
  5. oracle不小心更新了数据库中的所有内容后的恢复
  6. C#读取Access数据表中某一列内容,保存至数组
  7. 一起来点React Native——常用组件之Touchable系列
  8. react 部分ES6写法
  9. Android 运行 Linux 可执行程序
  10. Tomcat下JSP、Servlet和JavaBean环境的配置