我正在学习 C++(如果准确的话,重载运算符)。我尝试通过这种方式重载 operator+:
Complex4d Complex4d::operator+(const Complex4d &rvalue)
{
return Complex4d(a() + rvalue.a(), b());
}
其中 rvalue.a() 和 a()、rvalue.b() 和 b() 是 Complex2d 的对象。在 Complex2d 类中,我也重载了 operator+,通过这种方式:
Complex2d Complex2d::operator +(Complex2d &rvalue)
{
return Complex2d(a() + rvalue.a(), b() + rvalue.b());
}
如果我写这个:
Complex4d Complex4d::operator+(const Complex4d &rvalue)
{
Complex2d test = rvalue.a();
return Complex4d(a() + test, b());
}
一切都好。我做错了什么?