== this指针 == 在类的成员函数(不包括静态成员函数)中,存在一个名为this的指针,该指针指向成员函数被调用时的对象。 {{{#!cplusplus class clock { int second, minute, hour; public: clock(int h, int m, int s) : hour(h), minute(m), second(s) { } void show_time() { cout << second << minute << hour; //等价于 cout << this->second << this->minute << this->hour; } }; int main() { clock t1(10, 20, 30), t2(20, 30, 10); t1.show_time(); t2.show_time(); } }}} {{{#!cplusplus class clock { public: clock &set_second(int n); clock &set_minute(int n); clock &set_hour(int n); }; clock &clock::set_second(int n) { second = n; return *this; } int main() { clock time(1999, 9, 9); time.set_second(20); time.set_minute(30) time.set_hour(10); time.set_second(20).set_minute(30).set_hour(10); } }}} this有两种类型:以clock类为例,clock* const和const clock* const {{{#!cplusplus class clock { public: void show_time() const { cout << second << minute << hour; second++; //error this类型为const Date *this clock *p = (clock*)(this); // 或者clock *p = const_cast(this); p->second++; //ok } }; }}} ---- CategoryCpp