小弟的疑惑:创建子类对象时地址是否与父类对象一致?
俺编了个一般的程序用来测试:
#include<iostream>
using namespace std;
class ceshi1
{
public:ceshi1 *p1;
ceshi1()
{
p1=this;
}
};
class ceshi2:public ceshi1
{
public:ceshi2 * p2;
ceshi2()
{
p2=this;
}
void get()
{
cout<<p1<<endl;
cout<<p2<<endl;
}
};
void main()
{
ceshi1 a;
ceshi2 b;
cout<<&a<<endl<<&b<<endl;
cout<<a.p1<<endl<<b.p2<<endl;
b.get();
}
最后的输出是:
0012FF7C
0012FF74
0012FF7C
0012FF74
0012FF74
0012FF74
兄弟最不明白的是为什么最后两个输出的地址是一样的?大虾们帮帮忙哦。