C++笔记:关于this指针

之前学习this指针的时候,其实是模糊的,然后今天看到了一个视频,关于this的,我就看了一下,简单地总结了一下,详细见程序

#include<iostream>
using namespace std;
class A
{public:
	A(int a)//A_Init(A*this,int a)
	{
		cout << "A()..." << endl;
		m_a = a;
	}
	A(const A&a)//A_Copy(A*this)
	{
		cout << "A(&)...." << endl;
		m_a = a.m_a;
	}
	int GetA()//int GetA(A*this)
		//如果只读不写,那就需要加一个const,但是不可以写成int GetA(const)
		//因为()里的指针被隐藏掉了,正确形式:int GetA() const
		//我之前用C++primer的书时,就感觉他说的让我很晕
	{
		//关于this指针
		this->m_a = 120;//这样是可以正常编译的,所以this一定不是const A*this
		                //如果指针指向常量,会报错
		//this++;编译报错:表达式必须是可修改的左值,说明this是一个常值
		         //即A *const this,它的内容可以改变,值不行
		return m_a;
		//return this->m_a;
	}
	void PrintA()//void PrintA(A*this)
	{
		cout << "a=" << m_a << endl;
	}
	~A()
	{
		cout << "~A...." << endl;
	}
private:
	int m_a;
};
int main()
{
	A a1(10);
	A a2(100);
	A a3(a1);
	a1.GetA();//相当于GetA(&a1)
	a1.PrintA();//相当于PrintA(&a1)
	a2.GetA();//相当于GetA(&a2)
	a2.PrintA();//相当于PrintA(&a2)
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值