C++重载赋值运算符
C++中的赋值运算符“=”是将一个变量的值赋给另一个变量。在某些情况下,我们需要自定义类型的赋值操作。而重载赋值运算符就是解决这个问题的一种途径。
在C++中,重载赋值运算符的语法如下:
class MyClass {
public:
MyClass& operator=(const MyClass&);
};
其中,MyClass是你要重载赋值运算符的类名。operator= 是 C++ 中用于定义赋值运算符的运算符函数名称。该函数必须返回当前对象的引用(即*this)。
接着,我们看一下具体的实现方法。以一个简单的复数类为例:
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0, double i = 0): real(r), imag(i) {}
Complex& operator=(const Complex& c) {
this->real = c.real;
this->imag = c.imag;
return *this;
}
};
在上面的代码中,我们定义了一