C++中的this指针

this指针

概念:

       this指针是一个常量指针,它存在于类的成员函数之中,它指向的被调用成员函数所实例化的对象。在成员函数内部,我们可以直接使用调用函数的对象的成员,而不用通过成员访问操作符来做到这一点,这就是因为this指针正指向该对象,任何对类成员的直接访问都被看做this的隐式访问。

代码示例

Complex &operator=(/*Complex *const this,*/ const Complex &a)//这里的参数列表中隐藏了一个this常量指针,该指针指向的正是调用该函数的对象
{
	if (this == &a)
	{
		return *this;
	}
	_real = a._real;//	this->_real = a._real;
	_image = a._image;//	this->_image = a._image;
	return *this;
}





 

 
        关于this指针的意义还有一个经典的例子是这样说的,当你进入一个房子后,你可以看见桌子、椅子、地板等,但是房子你是看不到全貌了。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向你这个实例本身。 

特性:

this指针的指针类型为  类类型 *const this,它是一个常量指针,所以不允许改变this的地址。

this指针并不是对象本身的一部分,不影响sizeodf的结果。

this指针的作用域只在类成员函数的内部。

this指针只适用于非静态的成员函数。

this指针是类成员函数的第一个默认参数,编译器自动维护传递,类的编写者不能显式的传递。

示例

	Complex &operator=(Complex *const this,const Complex &a)//显式传递this指针
	{
		if (this == &a)
		{
			return *this;
		}
		this->_real = a._real;
		this->_image = a._image;
		return *this;
	}
上述情况编译器会报错。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值