this 指针 · 指向「正在调用它」的那个对象

成员函数只有一份,被所有对象共享;隐藏参数 this 决定 this->x 改的是谁的数据
两个对象 · 各有各的数据 a Counter 对象 ①   @0x…a10 x = 0 b Counter 对象 ②   @0x…b88 x = 0 成员函数 · 全类只有一份 void Counter::add() { this->x = this->x + 1; } 隐藏参数:(Counter *this) this = &a → 指向对象 a a.add(); 谁在点号左边,编译器就把它的地址当作 this 传进去 同一个 add(),this 指向不同实例 → 各改各的 x,互不干扰