【发布时间】:2017-02-24 13:20:02
【问题描述】:
标题说明一切。正如互联网上的每个人所说的那样,我重载了 operator
#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);
}
【问题讨论】:
-
你得到的确切错误是什么?
-
sum 成员函数的返回类型是什么...? ;)
-
...\main.cpp|42|error: no match for 'operator}' 和 '无效')|
-
@DanielJour 是返回 _a + _b。
-
这段代码完全没有意义。
标签: c++ class operator-overloading