文章目录 6个默认成员函数 构造函数 概念 默认构造函数的类型 默认实参 概念 默认实参的使用 默认实参声明 全局变量作为默认实参 某些类不能依赖于编译器合成的默认构造函数 第一个原因 第二个原因 第三个原因 构造函数初始化 构造函数里面的“=”是初始化吗? 为什么要使用列表初始化? 列表初始化 成员初始化的顺序 类内成员的默认初始化 赋值和初始化的效率差异 拷贝构造函数 概念 拷贝构造函数的参数必须是引用类型 编译器合成的拷贝构造函数 构造函数体内赋值和列表初始化的效率差异 构造函数体内赋值 列表初始化 总结 拷贝构造函数的两种调用方式及易错问题 调用方式一 调用方式二 易错问题 重载运算符 概念 ==运算符的重载 赋值运算符的重载 分清拷贝构造函数和赋值运算符 注意 实例 取地址运算符重载、对const对象取地址运算符的重载 析构函数 概念 构造函数和析构函数的类比 怎样调用析构函数 下面代码中会调用几次析构函数? 析构函数实例 =default =delete 三/五法则 6个默认成员函数 class Date { }; 可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗? 其实一个类在我们不写的情况下,也会生成6个默认的成员函数,分别是:构造函数,析构函数,拷贝构造函数,赋值运算符重载,取地址运算符重载,对const对象取地址运算符的重载 构造函数 概念 特征: