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);
}
解决方案
由于您使用的是未初始化的变量,因此您的程序具有未定义的行为。
初始化obj
一些合理的东西,事情应该可以工作。例如
base* obj = new child;
child* ob = dynamic_cast<child*>(obj);
推荐阅读
- angular - 与 Mantra 生物识别设备的离子应用程序连接
- java - 将 JSON 解析为 Java 实体
- c++ - C++ 函数指针
- android - 尝试在 Google Play 控制台中预览我的应用版本并不断出错
- sql - sql这个查询语句的作用是什么
- google-cloud-platform - Google Cloud 存储文件的基本身份验证
- css - 如何使用 React Native 在静态图像上实现网格覆盖
- appkit - 如何设置 NSSearchToolbarItem 的初始宽度
- javascript - 带有返回字符串的 Jss 函数
- c# - net5 自包含的 exe 缺少一些系统 DLL