Перегрузка операторов ввода / вывода, должна принимать только один аргумент - PullRequest
0 голосов
/ 01 июля 2019

Сначала я декалировал мою перегруженную функцию, похожую на этот вопрос , и имел ту же ошибку , что и там. Я изменил, как подсказывает ответ, но все еще получил это ошибка сообщение:

[Ошибка] 'std :: ostream & Number :: operator << (std :: ostream &, const Число &) 'должно принимать ровно один аргумент </p>

    //numb.hpp   
    class Number{  
    public:
    .....    
    std::ostream &operator<<(std::ostream&, const Number&);  
    };  

  //numb.cpp  
   std::ostream& Number::operator<<(std::ostream &output, const Number &Num){
                output << "The integers this object stores are: " << Num.num << " and " << Num.num1;
                return output; 
             }

1 Ответ

0 голосов
/ 01 июля 2019

Имеется два различных объявления: первое объявляет глобальный перегруженный оператор, второе объявляет (и определяет) оператор, который является членом класса Number (обратите внимание на Number::?).Во-первых, все в порядке (если вы намерены определить его как независимого оператора), во-вторых, очевидно, нет.Как объяснено, это ответ, который вы связали, и, как говорит ошибка, операторы-члены должны принимать один аргумент (помимо неявного this аргумента).

...