【C++】this指针与成员函数

来源

https://blog.csdn.net/qq_37375427/article/details/78739564

对象的构成

  1. 从面向对象的角度
    属性(成员变量)+ 方法(成员函数)
  2. 从程序运行的角度
    数据+函数
    数据:栈、堆、全局数据区
    函数:只能代码段

代码示例

#include <iostream>
using namespace std;
class Test
{
private:
	int m_private;
public:
	int m_public;
	Test(int num) { m_private = num; };
	Test(const Test& t) { m_private = t.m_private; };
	int GetMP() { return m_private; };
	void Print() { cout << "this = " << this << endl; };
};

int main()
{
	Test t1(1);
	Test t2(2);
	Test t3(3);

	cout << "t1.getMP() = " << t1.GetMP() << endl;
	cout << "&t1 = " << &t1 << endl;
	t1.Print();

	cout << "t2.getMP() = " << t2.GetMP() << endl;
	cout << "&t2 = " << &t2 << endl;
	t2.Print();

	cout << "t3.getMP() = " << t3.GetMP() << endl;
	cout << "&t3 = " << &t3 << endl;
	t3.Print();

	return 0;
}

运行结果:

t1.getMP() = 1
&t1 = 009EF904
this = 009EF904
t2.getMP() = 2
&t2 = 009EF8F4
this = 009EF904
t3.getMP() = 3
&t3 = 009EF8E4
this = 009EF904

结论

  1. 每一个对象和其this所指的地址是一样的(this只能在类成员函数中使用,专属于某一个具体的对象
  2. 每一个对象拥有自己独立的属性(成员变量),分配单独的内存空间
  3. 所有的对象共享类的方法
  4. 方法能够直接访问对象的属性
  5. 方法中的隐藏参数this指针用于指代当前对象
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值