我知道网上有很多关于重载赋值运算符的例子,但我已经花了几个小时试图在我的程序中实现它们并弄清楚它们的工作原理,但似乎无法做到,希望能得到任何帮助。
我正在尝试实现一个重载赋值运算符函数。
我已经有了3个文件:Complex.h头文件,Complex.cpp定义文件和一个用作测试Complex类的驱动的.cpp文件。
在Complex.h头文件中,我的赋值运算符函数原型如下:
我正在尝试实现一个重载赋值运算符函数。
我已经有了3个文件:Complex.h头文件,Complex.cpp定义文件和一个用作测试Complex类的驱动的.cpp文件。
在Complex.h头文件中,我的赋值运算符函数原型如下:
Complex &operator= (Complex&);
到目前为止,我在我的.cpp文件中对重载运算符的定义如下:
Complex &Complex::operator=(Complex& first)
{
if (real == first.real && imaginary == first.imaginary)
return Complex(real, imaginary);
return first;
};
我在函数中调用赋值运算符的方式是:
x = y - z;
具体来说,我的问题是当我使用x = y -z调用重载的赋值运算符时,它没有将传入的值赋给x,而当我返回传入的值时,我无法从网上的众多示例和解释中找出原因。非常感谢任何帮助,并提前感谢您的任何帮助。
=
不应该修改它的右操作数。 - emlai