copy constructor和 copy assignment operator
时间: 2025-01-28 19:23:13 浏览: 43
Copy constructor和copy assignment operator是C++语言中用于创建新对象并初始化为已有对象副本的重要概念。
**Copy Constructor**(复制构造函数)是一个特殊类型的构造函数,它接收一个已存在的对象作为参数,并创建一个新的对象,新对象的内容完全复制自原有对象。例如:
```cpp
class MyClass {
public:
MyClass(const MyClass& other) { // 这就是copy constructor
data = other.data;
}
private:
int data;
};
```
当你通过`MyClass obj1; MyClass obj2(obj1);`这样的形式创建新对象时,`obj2`实际上是`obj1`的一个副本。
**Copy Assignment Operator**(复制赋值运算符),也称为深拷贝,是另一个成员函数,它接受一个已经存在的对象并将它的内容赋给当前对象。它通常用于修改现有对象,而不是创建新的独立对象。格式如下:
```cpp
class MyClass {
public:
MyClass& operator=(const MyClass& other) { // 这就是copy assignment operator
if (this != &other) {
data = other.data;
}
return *this;
}
private:
int data;
};
```
当你使用`obj1 = obj2;`这样的操作时,`obj1`的数据会变成`obj2`的数据。
阅读全文
相关推荐
















