1. 默认构造函数
2. 拷贝构造函数/复制构造函数
使用一个已存在的对象对初始化另一个新对象
可以程序员自己定义拷贝构造函数;若没有定义,编译器会自动提供一个默认的拷贝构造函数
构造函数格式:
类名(const 类名& 对象名)
Person(const Person& object)
应用场景:
- 建立新对象
例如:Person obj1(obj);
Person obj2 = obj; ???
- 对象作为函数的形参
仅形参是按值传递时才会进行对象拷贝;若是传递引用,不会进行对象拷贝
//按值传递,复制对象
static void TransByValue(CComplex obj)
//传递引用,不复制对象
static void TransByRefence(const CComplex& obj)
- 函数返回对象
当函数被调用时,会拷贝对象
3. 转换构造函数 ????
4. 对象拷贝与对象复制的区别
对象的赋值是对一个已经存在的对象进行重新赋值,因此必须先定义被赋值的对象,才能进行赋值;
而对象的拷贝是在从无到有建立一个新对象,并使这个新对象和已有对象完全相同;