实例化对象在内存中的位置的实验

#include<iostream>
using namespace std;
class A
{
public:
A(int m)
{
cout<<this<<endl;
}
};
void main()
{
for(int i=0;i<5;i++)
{
A a(1);
A *a1=new A(1);
cout<<"a的地址:"<<&a<<endl;
cout<<"a1的地址:"<<a1<<endl;
cout<<endl;
}
}

以下是运行结果:

this时时刻刻指向当前所创建对象的地址,有调用结果可以看出:

1,new所创建的对象是动态分配地址的,而且他是存放在堆中的;

2,A a(1)创建同名对象时地址是不变的,即对于对象名相同对象,只创建一次对象,地址存放在栈中是系统分配的

原文地址:https://www.cnblogs.com/wanzaixiaoxin/p/2437776.html