为什么动态转换给出分段错误

时间:2018-04-29 03:46:29

标签: c++

#include<iostream>
using namespace std;

class base 
{
   virtual void display(){}
};

class child : public base {};

int main()
{
   base *obj;
   child *ob = dynamic_cast<child*>(obj);
}

1 个答案:

答案 0 :(得分:3)

由于您使用的是未初始化的变量,因此您的程序具有未定义的行为。

obj初始化为合情合理的东西应该可行。 E.g。

base* obj = new child;
child* ob = dynamic_cast<child*>(obj);