c++父类和子类转化致命的代码错误

最近在工做中,出现了严重的代码错误,对象的基类和子类的继承,代码大体以下:c++

class A
{
};

class B : public A
{
}

void main()
{
   A* a;(用于子类对象来进行赋值)= new 子类;
   //错误代码以下
  B* b = (B*) a;
  b.方法;
}//在这个过程当中,主要有两点错误:1,在a进行转换到B并无对a进行类型判断,a不为空,则b确定不为空  2.对b调用本身方法。若是b是非想虚函数,不会崩溃,可是调用本身的虚构函数,则崩溃。本身要多看看c++对象模型和c++ primer书,对对象模型可以了解清楚
相关文章
相关标签/搜索