C++学习笔记之this指针

假设有这样一个类

 

//类声明
class Data{
string getName() const { return name;}
string name;
};
//类的实例化
Data var; 
string str=var.getName();

上面发生了什么?

 

通过类Data的对象var调用它的成员函数getName(),函数内部又返回了var的数据成员name,实际上隐式地返回了var.name

怎么做到的?

成员函数getName()通过一个名为this的额外的隐式参数来访问调用它的对象var,在调用时,用该对象的地址赋予this,也就是

var *this=&var,this本质上是个指针。

 

//实质有个隐式的形参
string getName(Data *this) 
{ 
    return name;
}
//调用成员函数时(伪代码)
string getName(&var)
{
  return this->name;
}

注:

 

  1. 任何自定义名为this的参数或变量的行为都是非法的
  2. 因为this总是指向“这个”对象,故this是一个常量指针

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值