自引用指针this
C++为成员函数提供了一个名字为this的指针,这个指针称为自引用指针,每当创建一个对象时,系统就把this指针初始化为指向该对象,即this指针的值是当前调用成员函数的对象的起始地址。每当调用一个成员函数时,系统就自动把this指针作为一个隐含的参数传给该函数。不同的对象调用同一个成员函数时,C++编译器将根据成员函数的this指针所指向的对象来确定该引用哪一个对象的数据成员。
#include<iostream> using namespace std; class A { public: A(int x1) { x=x1; } void disp() { cout<<"\nthis="<<this<<"\n"<<"when x="<<this->x<<"\n"; } void copy(A &a); private: int x; }; void A::copy(A &a) { if(this==&a)//this指针是调用该成员函数的对象的地址 return; *this=a;//*this指针是调用该成员函数的对象。 } int main() { A a(1),b(2),c(3),d(3); a.disp(); b.disp(); c.disp(); d.copy(a); d.disp(); return 0; }
作者:wj704
出处:http://www.cnblogs.com/wj204/