您的位置:首页 > 编程语言 > C语言/C++

C++this指针

2016-06-20 11:06 253 查看

C++ this指针

在C++中,每个对象都可以通过this指针来访问自己的地址,this指针是所有成员函数的隐含参数,因此在成员函数内部,它可以用来指向调用对象。友元函数没有this指针,因为友元函数不是成员函数。

C++指针回顾

C++指针是一个变量,每一个变量都有一个内存地址,指针动态分配内存,其值就是内存位置的直接地址。定义一个指针变量,把变量地址赋值给指针,访问指针变量中可用地址的值。
#include<iostream>
using namespace std;
int main()
{
int var = 20;//定义一个变量
int *p; //声明一个指针变量
p = &var; //指针变量存储var地址
cout<<var<<endl;//输出20
cout<<p<<endl;//输出地址
cout<<*p<<endl;//输出20

}


C++引用回顾

提到指针我们就会想起引用。引用变量是一个已存在变量的另一个名字,俗称别名。把引用初始化为某个变量后就可以用该引用或变量名来指向变量了。听起来是不是有些绕,呵呵。
#include<iostream>
using namespace std;
int main()
{
int r=3;
int& i=r; //创建引用变量
cout<<r<<endl;//输出为3
cout<<i<<endl;//输出为3
}


关于this指针的一个经典回答:

当你进入一个房子后,   

你可以看见桌子、椅子、地板等,   

但是房子你是看不到全貌了。   

对于一个类的实例来说,   

你可以看到它的成员函数、成员变量,   

但是实例本身呢?   

this是一个指针,它时时刻刻指向你这个实例本身
一个指向C++类的指针与指向结构的指针类似,访问指向类的指针的指针成员,需要使用成员访问运算符->
box a;
box *i;
i=&box;
i->vlues();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息