赋值运算符可用于将一个对象的值复制到另一个对象 而不是使用复制构造函数,那么为什么我们需要一个复制构造函数?
class example
{
int data;
public:
example()
{
}
example(int x)
{
data = x;
}
};
int main()
{
example a(50);
example a(b);
//same can be done with the assignment operator
//b = a;
return 0;
}
最佳答案
因为在调用复制构造函数时,被复制到的对象还不存在。
赋值运算符将另一个对象的值赋给一个确实存在的对象。
成员初始化等设备可以与复制构造函数一起使用,但在赋值时不可用。此外,可以使用复制构造函数创建 const
对象。
此外,赋值运算符通常会返回对自身的引用。
因此,复制构造函数和赋值运算符可能会使变异对象处于相同状态,但不一定必须如此。 p>
关于c++ - 作为复制构造函数的赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418966/