下列输出结构是什么?
#include<iostream>
using namespace std;
class A
{
public:
int m_a;
A():m_a(0){}
};
class B : public A
{
public:
int m_a;
B():m_a(2){}
};
int main(int argc,char *argv[])
{
A *a=new A;
cout<<a->m_a<<endl;
cout<<sizeof(class A)<<endl;
A *b = new B();
cout<<b->m_a<<endl;
cout<<sizeof(class B)<<endl;
B *c = new B;
cout<<c->m_a<<endl;
}
g++编译运行后输出如下:
0
4
0
8
2
对第三个输出0不是很懂,求解释~