原创 讨论一下C++中this指针

2007-3-7 11:16 3439 4 4 分类: 软件与OS

这是我摘录的网上的一段,共同分享。


->高手们请讨论一下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条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条