拷贝构造函数和赋值运算符重载有以下两个不同之处:
(1)拷贝构造函数生成新的类对象,赋值运算符不能;
(2)由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不需要检测原对象是否和新建对象相同,而赋值运算符则需要这个操作,另外赋值运算中如果原来的对象中有内存分配要先把内存释放掉
当类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不能使用默认的。
拷贝构造函数和赋值运算符重载有以下两个不同之处:
(1)拷贝构造函数生成新的类对象,赋值运算符不能;
(2)由于拷贝构造函数是直接构造一个新的类对象,所以在初始化这个对象之前不需要检测原对象是否和新建对象相同,而赋值运算符则需要这个操作,另外赋值运算中如果原来的对象中有内存分配要先把内存释放掉
当类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不能使用默认的。