标题说全部不能使用`cout`。我在互联网上的每个人都说超载运营商< <,但我仍然为一个无效的运营商得到了这个愚蠢的错误。我做错了什么?这里是我的代码:即使我超载`运营商<<`
#include <iostream>
#include <cstdio>
using namespace std;
class Calc {
private:
union _Print_Datatypes {
int I;
double D;
string S;
char C;
};
public:
int i;
void Sum(long double _a, long double _b) {
return _a + _b;
}
void Sub(long double _a, long double _b) {
return _a - _b;
}
void Div(long double _a, long double _b) {
return _a/_b;
}
void Mult(long double _a, long double _b) {
return _a * _b;
}
};
std::ostream &operator<<(std::ostream &os, Calc const &m) {
return os << m.i;
}
int main() {
Calc _calc;
cout << _calc.Sum(2,2);
}
你得到了什么确切的错误? – NathanOliver
总和成员函数的返回类型是什么...? ;) –
... \ main.cpp | 42 |错误:'operator <<'不匹配(操作数类型是'std :: ostream {aka std :: basic_ostream}'和'void')| –