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

什么时候亟需返回this指针

2013-08-01 
什么时候需要返回this指针啊/******************有一个Time类,包含数据成员minute和sec,模拟秒表,每次走一

什么时候需要返回this指针啊

/******************
有一个Time类,包含数据成员minute和sec,模拟秒表,每次走一秒,满60秒进一分钟
此时秒又从0秒计算。要求输出分和秒的值。
**********************/
using namespace std;
class Time
{
public:
    Time()
    {
        minute = 0;
        sec = 0;
    }
    Time(int m, int s): minute(m), sec(s) {}
    Time operator++();//声明运算符重载函数

    void display()
    {
        cout << minute << ":" << sec << endl;
    }
private:
    int minute;
    int sec;
};
Time Time::operator ++()
{
    if(++sec >= 60)
    {
        sec -= 60;
        ++minute;
    }
    return *this; //这里为何要返回*this啊
}
int main()
{
    Time time1(34, 0);
    for(int i = 0; i < 61; i++)
    {
        ++time1;
        time1.display();
    }
    return 0;
}
this
[解决办法]
返回this指针,表明函数返回的还是调用函数的找个对象,这意味着你可以连续使用:
+++time1
[解决办法]
你重载的 ++ 自增操作符,把它重载为Time类的成员函数了,this是隐含操作数,是指向调用方的指针,函数内所做的修改皆是修改的 *this 这个对象,
Time Time::operator ++()
{
    if(++(this.sec) >= 60)
    {
        this.sec -= 60;
        ++(

this.minute);
    }
    return *this; //这里为何要返回*this啊
}

热点排行