类对象在堆区或者栈区的区别

类对象在堆区或者栈区的区别 

#include <iostream>
using namespace std;
class Test {
public:
	int a;
	Test() {
		a = 1;
	}
};

int main() {
	Test *t1 = new Test();
	t1->a = 10;
	Test *t2 = new Test();
	t2->a = 5;
	cout << "&t1:" << t1 << "a=" << t1->a << endl;
	cout << "&t2:" << t2 << "a=" << t2->a << endl;
	cout << "-------------------------------" << endl;
	t2 = t1;
	cout << "&t1:" << t1 << "a=" << t1->a << endl;
	cout << "&t2:" << t2 << "a=" << t2->a << endl;
	cout << "-------------------------------" << endl;
	t1->a = 111;
	t2->a = 222;
	cout << "&t1:" << t1 << "a=" << t1->a << endl;
	cout << "&t2:" << t2 << "a=" << t2->a << endl;
	return 0;
}
/*
int main()
{
	Test t1;
	t1.a = 10;

	Test t2;
	t2.a = 5;

	cout << "&t1:" << &t1 << " a = " << t1.a << endl;
	cout << "&t2:" << &t2 << " a = " << t2.a << endl;

	cout << "------------------------------" << endl;
	t2 = t1;
	cout << "&t1:" << &t1 << " a = " << t1.a << endl;
	cout << "&t2:" << &t2 << " a = " << t2.a << endl;

	cout << "------------------------------" << endl;

	t1.a = 111;
	t2.a = 222;
	cout << "&t1:" << &t1 << " a = " << t1.a << endl;
	cout << "&t2:" << &t2 << " a = " << t2.a << endl;

	return 0;
}*/

 下面是两个main的输出

第一个

&t1:0x11c1e70a=10
&t2:0x11c1e90a=5
-------------------------------
&t1:0x11c1e70a=10
&t2:0x11c1e70a=10
-------------------------------
&t1:0x11c1e70a=222
&t2:0x11c1e70a=222


第二个

&t1:0x7ffcdf7ebfac a = 10
&t2:0x7ffcdf7ebfa8 a = 5
------------------------------
&t1:0x7ffcdf7ebfac a = 10
&t2:0x7ffcdf7ebfa8 a = 10
------------------------------
&t1:0x7ffcdf7ebfac a = 111
&t2:0x7ffcdf7ebfa8 a = 222

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值