这是我的代码(仅写本质),我明白了:
错误:与“操作符<<”不匹配(操作数类型为“ 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;
}
出什么问题了?
答案 0 :(得分:2)
问题是此行:out << mobil.print() << endl;
。您的print()
方法不会返回任何内容(类型为void
),因此无法将其发送到ostream
。
要解决此问题,您的print()
方法应以ostream
支持的一种类型返回您要打印的内容,您可以在reference中找到该类型。