ошибка: нет совпадения для оператора "operator <<" (типы операндов: "std :: ostream {aka std :: basic_ostream <char>} 'и" void ") - PullRequest
0 голосов
/ 09 ноября 2018

Это мой код (я пишу только суть), и я получаю это:

ошибка: нет совпадения для «оператора <<» (типы операндов ‘std :: ostream {aka std :: basic_ostream} ’и oid void’) </p>

class Mobil {
public:
void print() const; 
int  getNumber() const;
double getData() const;
friend ostream& operator <<(ostream&, const Mobil&);
};

ostream& operator<<(ostream& out, const Mobil& mobil) {
    out << mobil.print() << endl;
    return out;
}

в чем проблема?

1 Ответ

0 голосов
/ 09 ноября 2018

Проблема в этой строке: out << mobil.print() << endl;. Ваш метод print() ничего не возвращает (это тип void), поэтому его нельзя отправить на ostream.

Чтобы решить эту проблему, ваш метод print() должен возвращать все, что вы хотите распечатать, в одном из типов, поддерживаемых ostream, который вы можете найти в справочнике .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...