回顾(一)的内容:
构造函数是一种特殊的成员函数
在创建对象的时候自动调用,对对象的数据成员进行初始化
栈区创建的对象,在生存期结束的时候会自动调用析构造函数
在堆上创建的对象,要有程序员显式调用delete释放该对象,同时调用析构函数。
全局对象的构造先于main函数
转换构造函数
- 单个参数的构造函数
- 将其他类型转换为类类型
- 类的构造函数只有一个参数是非常危险的,因为编译器可以使用这种构造函数把参数的类型隐式转换为类类型
赋值与初始化区别
- 在初始化语句中的等号不是运算符。编译器对这种表示方法有特殊的解释
- 赋值
- Test& Test::operator=(const Test& other);
explicit
- 只提供给类的构造函数使用的关键字
- 编译器不会把声明为explicit的构造函数用于隐式转换,它只能在程序代码中显示创建对象。