【发布时间】:2010-12-26 02:24:04
【问题描述】:
我正在尝试学习 C++ 中的重写运算符。但我坚持这一点:
..\src\application.cpp:在函数“int main()”中:
..\src\application.cpp:29: 错误:在 'std::operator& )(&std::cout)), ((const char*)"Poly A:")) Poly::operator++(0)'
这是导致错误的行,似乎我的后增量运算符没有返回任何可打印的内容:
cout << "Poly A: " << A++ << endl;
我有一个 Poly.h 和一个 Poly.cpp 文件:
class Poly{
friend istream& operator>>(istream &in, Poly &robject);
friend ostream& operator<<(ostream &out, Poly &robject);
public:
Poly();
Poly operator++(int);
Poly operator++();
private:
int data[2];
};
Poly.cpp:
Poly Poly::operator++ (){
data[0]+=1;
data[1]+=1;
return *this;}
Poly Poly::operator++ (int){
Poly result(data[0], data[1]);
++(*this);
return result;
}
ostream& operator<<(ostream &out, Poly &robject){
out << "(" << robject.data[0] << ", " << robject.data[1] << ")";
return out;
}
【问题讨论】:
标签: c++ overriding