C++——this指针的使用

如果方法需要显式地引用调用它的对象,则可以使用this指针。由于

this指针被设置为调用对象的地址,因此*this是该对象的别名。

 

 

书本实例:

const Stock & Stock:: topval(const Stock & s) const

{

if(s. total val>total val)

return s;                          //argument object

else

return ?????;            //invoking object

}

其中,s.total_val是作为参数传递的对象的总值,total_val是用来调用该

方法的对象的总值。如果s.total_val大于toatl_val,则函数将返回指向s的引

用;否则,将返回用来调用该方法的对象(在OOP中,是topval消息要发送给

的对象)。问题在于,如何称呼这个对象?如果调用stock1.topval(stock2),

则s是stock2的引用(即stock2的别名),但stock1没有别名。

C++解决这种问题的方法是:使用被称为this的特殊指针。this指针指向

用来调用成员函数的对象(this被作为隐藏参数传递给方法)。这样,函数调

用stock1.topval(stock2)将this设置为stock1对象的地址,使得这个指针可用

于topval( )方法。同样,函数调用stock2.topval(stock1)将this设置为stock2对

象的地址。一般来说,所有的类方法都将this指针设置为调用它的对象的地

址。确实,topval( )中的total_val只不过是this->total_val的简写(第4章使用->

运算符,通过指针来访问结构成员。这也适用于类成员)(参见图10.4)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值