感谢优快云的同学热心回答.现在mark down.
这个新对象的储存结构仍是类B,但是p是基类对象所以没办法访问f()和a,
QUESTIION:
class A{};
class B:public A{
public:
void f();
int a;
}
int main()
{
A * p=new B();
}
//用p无法访问B类的数据和成员函数,那么这个新建的对象存不存在f()和a?
这个新对象的储存结构仍是类B,但是p是基类对象所以没办法访问f()和a,
所以需要加virtual让f成为虚函数,或者dynamic_cast类型转向子类,
又或者((B*)p)->f(),((B*)p)->a