this指针

1. this指针的工作原理

类的成员函数默认编译器都加上了一个this指针,这个this指针指向调用该成员函数的对象

如图:

 2. this的应用

class person
{
public:
	person(int  age, string name)// this  
	{
		this->age = age;
		this->name = name;
	}
	void  show()
	{
		cout << age << " " << name << endl;
	}
	//常函数  不能通过this指针修改this指针指向的对象内容
	//常量指针常量
	person person_add( person &p2)const//const person  * const this ------> p1
	{
		//this->age = 200;
		person p(this->age+p2.age,this->name+p2.name);//"helloworld"
		return p;
	}

	int age;
	string  name;

};
//全局调用
person person_add(person &p1, person &p2)
{
	person p(p1.age+p2.age,p1.name+p2.name);//"helloworld"
	return p;
}
void  test02()
{
	person p1(10, "hello");
	person p2(20, "world");
	//p3 = p1 + p2    30,"helloworld"
    //全局调用
	person p3 = person_add(p1,p2);
	p3.show();
    //类中调用
	person p3 = p1.person_add(p2);
	p3.show();
}

 3. const 修饰成员函

1. 在函数后面加上const,这个是一个常函数

2.  这个const修饰的是指针 const  type * const  this,代表不能通过this指针去修改this指针指向对象的内容

代码实现

//常函数 不能通过this指针修改this指针指向的对象内容
//常量指针常量
person person_add(person& p2)const //const person * const this 
{
	//this‐>age = 200;
	person p(this	name + p2.name); //"helloworld"
	return p;
}
  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值