什么时候需要返回this指针啊
/******************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指针,表明函数返回的还是调用函数的找个对象,这意味着你可以连续使用:
+++time1
[解决办法]
你重载的 ++ 自增操作符,把它重载为Time类的成员函数了,this是隐含操作数,是指向调用方的指针,函数内所做的修改皆是修改的 *this 这个对象,
Time Time::operator ++()
{
if(++(this.sec) >= 60)
{
this.sec -= 60;
++(
this.minute);
}
return *this; //这里为何要返回*this啊
}