错误:与“ operator <<”不匹配(操作数类型为“ std :: ostream {aka std :: basic_ostream <char>}”和“ void”)

时间:2018-11-09 10:58:17

标签: c++ c++11

这是我的代码(仅写本质),我明白了:

错误:与“操作符<<”不匹配(操作数类型为“ std :: ostream {aka std :: basic_ostream}”和“ void”)

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 :(得分:2)

问题是此行:out << mobil.print() << endl;。您的print()方法不会返回任何内容(类型为void),因此无法将其发送到ostream

要解决此问题,您的print()方法应以ostream支持的一种类型返回您要打印的内容,您可以在reference中找到该类型。