【类和对象】this指针的作用

this指针的作用:
当形参和成员变量名同名时,可以作区分,this.age = age;
在非静态成员函数中返回对象本身时 return *this

this的本身时指针常量(只能指向对象自身)

#include<iostream>
#include<cstdio>
using namespace std;
class T{
	public:
		int a;
	public:
		T(int a){
			this->a = a;
		}
		T func(){	// 创建新的对象 
			cout<<this->a<<"++"<<endl;
			this->a = this->a + 1;
			return *this;
		}
		T& func_a(){	 
			this->a = this->a + 1;
			return *this;
		} 
};

int main()
{
	T t1 = T(10);
	cout<<t1.a<<"->";
	T t2 = t1.func();
	cout<<t1.a<<"->"<<endl;
	T t3 = t1.func().func();	// 由于返回类型时 T 所以  t1.func() 执行完后 再次调用 func() 已经不是原本的对象了 
	cout<<t1.a<<endl;
	cout<<t1.a<<endl;
	cout<<t2.a<<endl;
	cout<<t3.a<<endl;
	printf("%p %p %p\n", &t1, &t2, &t3);
	printf("%p %p %p\n", t1, t1.func(), t1.func().func()); 
	
	cout<<"------------"<<endl;
	
	T t4 = T(10);
	cout<<t4.a<<"->";
	T t5 = t4.func_a();
	cout<<t4.a<<"->";
	T t6 = t4.func_a().func_a();
	cout<<t4.a<<endl;
	cout<<t4.a<<endl;
	cout<<t5.a<<endl;
	cout<<t6.a<<endl;
	printf("%p %p %p\n", &t4, &t5, &t6);
	printf("%p %p %p\n", t4, t4.func_a(), t4.func_a().func_a());
	return 0;	
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值