为什么动态投射会出现分割错误

Why Dynamic cast giving Segmentation Fault

本文关键字:分割 错误 动态 为什么      更新时间:2023-10-16
#include<iostream>
using namespace std;
class base 
{
   virtual void display(){}
};
class child : public base {};
int main()
{
   base *obj;
   child *ob = dynamic_cast<child*>(obj);
}

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

obj初始化为合理的内容,事情应该可以工作。 例如

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