一个类中的不同对象在调用自己的成员函数时,其实它们调用的是同一段函数代码,成员函数通过this指针来知道要访问哪个对象的数据成员的;
每个对象都拥有一个this指针,this指针记录对象的内存地址;
在 C++中,this 指针是指向类自身数据的指针,简单的来说就是指向当前类的当前实例对象。
this指针有一下特点:
1、this只能在成员函数中使用,全局函数、静态函数都不能使用this;实际上,成员函数默认i的一个参数为T*const this;也就是一个类里面的成员函数 int func(int p) ,func 的原型在编译器看来应该是 int func(T *const this , int p)
2、this 在成员函数的开始前构造,在成员函数的结束后清除;
3、this指针会因编译器不同而有不同的放置位置;可能是栈,也可能是寄存器,甚至全局变量;
this只能够在成员函数使用;
#include <iostream>
#include <string>
using namespace std;
class Dog
{
public:
string name;
void func();
};
int main()
{
Dog dog;
dog.func();
return 0;
}
void Dog::func() //在类的成员函数里使用了this指针,并指向了类里的成员name,先将赋值叫"旺财",然后打印name的值
{
this->name = "旺财";
cout << "小狗的名字叫:" << this->name << endl;
}