93、拷贝构造函数和赋值运算符重载的区别?

1.拷贝构造函数是函数,赋值运算符是运算符重载。

2.拷贝构造函数会生成新的类对象,赋值运算符不能。

3.拷贝构造函数是直接构造一个新的类对象,所以在初始化对象前不需要检查源对象和新建对象是否 相同;赋值运算符需要上述操作并提供两套不同的复制策略,另外赋值运算符中如果原来的对象有 内存分配则需要先把内存释放掉。

4.形参传递是调用拷贝构造函数(调用的被赋值对象的拷贝构造函数),但并不是所有出现"="的地 方都是使用赋值运算符,如下:

Student s;
Student s1 = s; // 调用拷贝构造函数
Student s2;
s2 = s; // 赋值运算符操作

注:类中有指针变量时要重写析构函数、拷贝构造函数和赋值运算符
原文地址:https://www.cnblogs.com/crbhf/p/14995024.html