
This指针
1.是成员函数的隐藏的形参,可以访问类内所有的变量,指向的是当前对象的地址。
2.This指针的本质(摘抄自http://c.biancheng.net/view/170.html)
C++ 是在C语言的基础上发展而来的,第一个 C++ 的编译器实际上是将 C++ 程序翻译成C语言程序,然后再用C语言编译器进行编译。
C语言中只有全局函数,因此成员函数只能被翻译成全局函数;myCar.Modify();这样的语句也只能被翻译成普通的调用全局函数的语句。那如何让翻译后的 Modify 全局函数还能作用在 myCar 这个结构变量上呢?答案就是引入“this 指针”。下面来看一段 C++ 程序到C 程序的翻译。


可以看出,类被翻译成结构体,对象被翻译成结构变量,成员函数被翻译成全局函数。但是C程序的全局函数 SetPrice 比 C++ 的成员函数 SelPrice 多了一个参数,就是struct CCar *this。car.SetPrice(20000);被翻译成SetPrice(&car, 20000);,后者在执行时,this 形参指向的正是 car 这个变量,因而达到了 SetPrice 函数作用在 car 变量上的效果。
3.作用

参数和类的数据成员可以重名了,因为有this指针可以区分了。
4.注意
lConst形参可以放在成员函数后面,表示这个成员函数不修改任何数据成员的任何值。
l非成员函数是不可以这样加的。



收录于合集 #C++
9个
上一篇构造函数与析构函数下一篇继承与派生
喜欢此内容的人还喜欢


被折叠的 条评论
为什么被折叠?



