定义了等号运算符重载之后如何使用类内默认提供的等号运算符重载
时间: 2024-03-18 09:18:34 浏览: 73
C++ 类的赋值运算符”=”重载的方法实现
如果你在类中定义了自己的等号运算符重载函数,那么默认提供的等号运算符重载函数就不再适用于该类。如果你仍然想使用默认提供的等号运算符重载,可以通过以下方式:
在类内部定义一个函数,该函数返回一个指向该类对象的引用,并且该函数不会修改该对象的任何成员变量。这个函数通常被称为“自我复制”函数(self-assignment function),如下所示:
```
class MyClass {
public:
MyClass& operator=(const MyClass& other) {
if (this == &other) {
return *this;
}
// Perform copy operation
return *this;
}
MyClass& self_assign() {
return *this;
}
};
```
然后就可以使用默认提供的等号运算符重载了:
```
MyClass a, b;
a = b.self_assign();
```
这里将b对象复制给a,并且调用了默认提供的等号运算符重载函数。
阅读全文