this指针

每一个非静态成员函数都只会生成一个函数实例,所以多个同类型对象会公用一块代码。
这一块代码如何区分不同的对象呢?
C++通过特殊的指针this指针来解决这个问题。
this指针指向被调用的成员函数的对象。

举例:
一个男生(函数)脚踏三条船,他同时如何处理三个女生?(被三个对象调用),满足三个女生的不同要求(执行函数)

this指针的具体操作:
1.形参和成员变量重名
2.类的非静态函数中返回对象本身,可以使用return *this

class Person  {
public:
	Person(int age){
		//如果我们写age=age;此时形参月成员变量重名肯定是不行的
		this ->age =age;//前面的是由this指针指向的对象内的age
		
	}
	voia test(){
	Person p(18);
	cout<<p.age<<endl;
	
	}
	
private:
	int age;	

};
class Person  {
public:
	Person(int age){
		this ->age =age;
		
	}
	
	void PersonAdd (Person &p){
		this->age+=p.age;//计算两个人的年龄值得和,this函数返回了自身对象
		return *this;
	}
	void test (){
		Person p1(10);
		Person p2(20);
		p2.PersonAdd(p1).PersonAdd(p1).PersonAdd(p1);
		/*因为PersonAdd这个函数最后的返回值是this指针所以就是返回了对象本身所以可以连续进行调用
		*/
		cout<<p2.age;
		}
	
	}
	
private:
	int age;	

};

以上就是this指针的两种实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值