#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)创建同名对象时地址是不变的,即对于对象名相同对象,只创建一次对象,地址存放在栈中是系统分配的