我有以下的類接口:「這個」級聯如何工作?
class Time
{
public:
Time(int = 0, int = 0, int = 0);
Time &setHour(int);
Time &setMinute(int);
Time &setSecond(int);
private:
int hour;
int minute;
int second;
};
的實施是在這裏:
Time &Time::setHour(int h)
{
hour = (h >= 0 && h < 24) ? h : 0;
return *this;
}
Time &Time::setMinute(int m)
{
minute = (m >= 0 && m < 60) ? m : 0;
return *this;
}
Time &Time::setSecond(int s)
{
second = (s >= 0 && s < 60) ? s : 0;
return *this;
}
在我的主.cpp文件,我有這樣的代碼:
int main()
{
Time t;
t.setHour(18).setMinute(30).setSecond(22);
return 0;
}
怎麼回事可能將這些函數調用鏈接在一起?我不明白爲什麼這會起作用。
哦,我明白了......'t.setHour(18)'會留下'(* this)',它將被用來引用下一個函數...... – teacher
@teacher:的確如此。 – Goz