有区别,赋值运算符是 “=”,复制构造函数是复制一个类别的东西a到同一类别的另一个东西b时运用到的算法,比如说字串(string)a 要复制到字串 b就不是 a = b那么简单,要用到特殊的复制构造函数
一个拷贝构造函数用于初始化一个先前未初始化从其他对象的数据对象。A(const A& rhs) ...
虽然 The Rule of Three 成功地要求我们的复制构造函数,赋值运算符和析构函数的存在,但它应该被称为 “三大半”:任何时候你的类管理资源,提供swap也是有意义的功能。 我们需要在我们的类中添加交换功能,我们这样做如下†: class dumb_array { public: // ... friend void swap(dumb_array& first, dumb...
如果在前两种情况不使用拷贝构造函数的时候,就会导致一个指针指向已经被删除的内存空间。对于第三种情况来说,初始化和赋值的不同含义是拷贝构造函数调用的原因。事实上,拷贝构造函数是由普通构造函数和赋值操作符共同实现的。描述拷贝构造函数和赋值运算符的异同的参考资料有很多。使用原则 通常的原则是:①对于凡是...