在Complex类中实现运算符=的重载。
时间: 2024-10-25 07:14:29 浏览: 13
在C++中,如果你有一个名为`Complex`的类,它代表复数,并且你想让这个类支持赋值操作符`=`, 你需要重载该运算符以便可以对两个复数进行赋值。下面是一个简单的例子:
```cpp
class Complex {
private:
double real;
double imag;
public:
// 构造函数
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
// 运算符= 的重载
Complex& operator=(const Complex& other) {
if (this != &other) { // 防止自我赋值
real = other.real;
imag = other.imag;
}
return *this; // 返回*this以便链式赋值
}
// 其他复数操作...
};
// 使用示例
int main() {
Complex c1(1, 2);
Complex c2(3, 4);
// 通过赋值运算符重载,将c2的值赋给c1
c1 = c2;
return 0;
}
```
在这个例子中,`operator=`函数接收一个`Complex`类型的引用作为参数,然后将接收到的对象的实部和虚部分别复制到当前对象中。返回*this是为了允许链式赋值,如`c1 = c2 = Complex(5, 6);`。
阅读全文