拷贝构造函数和赋值运算符重载之间有什么区别?
- 拷贝构造函数用于构造新的对象;
Student s; Student s1 = s; // 隐式调用拷贝构造函数 Student s2(s); // 显式调用拷贝构造函数
- 赋值运算符重载用于将源对象的内容拷贝到目标对象中,而且若源对象中包含未释放的内存需要先将其释放;
Student s; Student s1; s1 = s; // 使用赋值运算符
一般情况下,类中包含指针变量时需要重载拷贝构造函数、赋值运算符和析构函数。
Student s;
Student s1 = s; // 隐式调用拷贝构造函数
Student s2(s); // 显式调用拷贝构造函数
Student s;
Student s1;
s1 = s; // 使用赋值运算符
一般情况下,类中包含指针变量时需要重载拷贝构造函数、赋值运算符和析构函数。