这是我摘录的网上的一段,共同分享。
->高手们请讨论一下C++中this指针的应用,结合实际例子,谢了!!!
->我不是高手,但我很乐意说一下。
this指针是C++里的一个很特殊的对象指针,也就是是它是专门指向类对象的地址的。它同时又是一个隐含式的指针,也就是使用它时不需要你自己去定义使用,而是由系统自己完成。它隐含于每一个成员函数中,也就是类的每一个成员函数都有一个this指针,它指向该函数所属类的对象。
在这里举一个例子
class A
{public:
void init(char ma,int mb){ma=a;mb=b;}
private:
char a;
int b;
};
int main()
{
A objA;
A objB;
objA.init('x',5);
return 0;
}
在这个例子中,类A创建了两个对象objA和objB。我们在调用函数init时,系统为什么会知道我们是调用了objA而不是objB的呢?这就是this指针在起作用了。因为在编译时,系统其实对函数init做了一些小手脚,将他变成了init(&objA,'x',5);
相应地,形参也会变成void init(A *this,char ma,int mb){this->ma=a;this->mb=b;}
这样当函数传递时,隐式指针this就确保了我们要调用的是对象objA的函数而不是objB。
大概是这样,错误之处还望指出。
文章评论(0条评论)
登录后参与讨论