输入/输出运算符重载,必须正好包含一个参数错误

时间:2019-07-01 10:30:50

标签: c++ overloading

首先,我将重载的功能类似符号声明为此question,并在其中存在相同的错误。我按照答案的建议进行了更改,但仍然收到以下错误消息:

  

[错误]'std :: ostream&Number :: operator <<(std :: ostream&,const   Number&)'必须仅包含一个参数

[5]

1 个答案:

答案 0 :(得分:0)

您有两种不同的声明-第一个声明一个全局重载运算符,第二个声明(并定义)一个属于Number类的成员的运算符(请注意Number::?)。第一个是可以的(如果这就是您的意图-将其定义为独立运营商),第二个显然不是。正如您所链接的答案所解释的,以及错误所指出的那样-成员运算符需要采用一个参数(除了隐式this参数之外)。