首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么这段代码运行报错啊该怎么解决

2012-04-21 
为什么这段代码运行报错啊?C/C++ code//Listing 10.10//operator++ returns a nameless temporary object#

为什么这段代码运行报错啊?

C/C++ code
//Listing 10.10//operator++ returns a nameless temporary object#include <iostream>using namespace std;class Counter{public:    Counter();    Counter(int val);    ~Counter(){}    int GetItsVal() const {return itsVal;}    void SetItsVal(int x) {itsVal = x;}    void Increment() {++itsVal;}    Counter operator ++() {}private:    int itsVal;};Counter::Counter():itsVal(0){}Counter::Counter(int val):itsVal(val){}Counter Counter::operator ++(){    ++itsVal;    return Counter(itsVal);}int main(){    Counter i;    cout<<"The value of i is "<<i.GetItsVal()<<endl;    i.Increment();    cout<<"The value of i is "<<i.GetItsVal()<<endl;    ++i;    cout<<"The value of i is "<<i.GetItsVal()<<endl;    Counter a = ++i;    cout<<"The value of a: "<<a.GetItsVal();    cout<<" and i: "<<i.GetItsVal()<<endl;    return 0;}


[解决办法]
Counter operator ++() {} //已经定义了函数,不过是空的。。
=》Counter operator ++();
[解决办法]
楼上说得对,Counter operator ++() {} 是一个inline成员函数了,再次定义会冲突

热点排行