派生时被抛回基地.安全,我的意思是它适用于已知的c ++编译器.它似乎适用于VIsual C++ 2008.例如
class zero
{
virtual int v()=0;
}
class a: public zero
{
public:
int value;
a(int vin)
{
value =vin;
}
int v()
{
return value;
}
}
zero *e1= new a(3);
cout << e1->v();
Run Code Online (Sandbox Code Playgroud)
jde*_*aan 14
这是安全且完全正确的行为.这就是为什么你有虚拟或纯虚拟方法的原因.大多数情况下,您需要隐藏实现细节并通过其接口(或纯虚拟类)操作对象.这是标准的,所有C++编译器都必须支持它.