C++(三十) — this 指针
1、如何区分多个对象调用同一个类函数?
类外部访问类成员,必须用对象来调用。一个类的所有对象在调用的成员函数,都执行同一段代码,那成员函数如何区分属于哪个对象呢?
在对象调用成员函数时,除接收实参外,还接受一个对象的地址。也就是隐含参数:this 指针(编译器自动实现).
this 指针指出,成员函数当前所操作的数据所属的对象。不同对象调用成员函数时,this指针指向不同对象。
2、 关于this指针的一个经典回答:
当你进入一个房子后,你可以看见桌子、椅子、地板等,但是房子你是看不到全貌了。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?
this是一个指针,它时时刻刻指向你这个实例本身。
class test { public: // test(int a, int b) // test(test *this, int a, int b) { this->a = a; this->b = b; cout << "构造函数执行" << endl; } void print() { cout << a << endl; cout << this->b << endl; } private: int a; int b; }; int main() { test t(1,2); t.print(); // print(&t ) system("pause"); return 0; }