首页 > 解决方案 > 为什么动态转换给出分段错误

问题描述

#include<iostream>
using namespace std;

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

class child : public base {};

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

标签: c++

解决方案


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

初始化obj一些合理的东西,事情应该可以工作。例如

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

推荐阅读