复制构造函数和复制赋值运算符
从 C++ 11 中开始,该语言支持两种类型的分配:复制赋值和移动赋值。 在本文中,“赋值”意味着复制赋值,除非有其他显式声明。 赋值操作和初始化操作都会导致对象被复制。
赋值:在将一个对象的值赋给另一个对象时,第一个对象将复制到第二个对象中。 因此,
Point a, b;
...
a = b;
导致 b 的值被复制到 a 中。
初始化:在以下情况下将进行初始化:声明新对象、参数通过值传递给函数或值通过值从函数返回。
您可以为类类型的对象定义“复制”的语义。 例如,考虑此代码:
TextFile a, b;
a.Open( FILE1.DAT );
b