今天写作业时有一题,计算复数的加减法,需要将二元运算符+和-重载。第一次编译时遇到了must take either zero or one argument的报错。一下是部分代码
{
private: //数据成员
T real;
T image;
public:
Complex(); //默认构造函数模板
Complex(const T &m, const T &n); // 构造函数模板
Complex(const Complex ©); //复制构造函数模板
void Show();
};
template<typename T>
T& Complex<T>:: operator+(Complex c1, Complex c2);
template<typename T>
T& Complex<T>:: operator-(Complex c1, Complex c2);
可以看到,将二元运算符的参数写成了两个。