c++ - 抛出存储在基类指针中的派生类对象
问题描述
我想将派生对象作为一种异常抛出。此派生对象的内存是动态分配的,并且该对象由基类指针管理。这个基类是抽象的。当我尝试抛出取消引用的指针时,它给了我一个错误object of abstract class type is not allowed
. 我知道这个错误是必要的,所以你被禁止抛出抽象基类的对象。但是,我想知道是否有任何方法能够抛出存储在基类指针中的派生对象。派生对象当然不是抽象的。鉴于使用基类指针来执行多态是很常见的,我觉得应该有办法解决它。有没有?我宁愿避免抛出指针本身。特别考虑到它是一个唯一指针,我想如果我抓住智能指针并因此有两个副本,它会给我一个错误。
解决方案
推荐阅读
- c++ - 为什么编译器找不到超类的方法?
- c++ - 使用 OpenCv 和 C++ 进行 Kinect V1 校准
- android - 下载质量为 1080p 的视频时,android-youtubeExtractor 中的视频没有音频
- python - Django RequestFactory 添加 HTTP_X_FORWARDED_FOR
- android - Modify circleci/android docker container
- capybara - 使用 Capybara 针对控制器方法模拟下载链接/检查链接生成
- java - How to convert UTC Date String and remove the T and Z in Java?
- python - 使用mechanicalsoup的提交功能获取“AttributeError:'str'对象没有属性'append'”
- grammar - 将 BNF 文法转换为 JavaCC
- javascript - 基于firebase身份验证限制Javascript中的路由