首页 > 解决方案 > 抛出存储在基类指针中的派生类对象

问题描述

我想将派生对象作为一种异常抛出。此派生对象的内存是动态分配的,并且该对象由基类指针管理。这个基类是抽象的。当我尝试抛出取消引用的指针时,它给了我一个错误object of abstract class type is not allowed. 我知道这个错误是必要的,所以你被禁止抛出抽象基类的对象。但是,我想知道是否有任何方法能够抛出存储在基类指针中的派生对象。派生对象当然不是抽象的。鉴于使用基类指针来执行多态是很常见的,我觉得应该有办法解决它。有没有?我宁愿避免抛出指针本身。特别考虑到它是一个唯一指针,我想如果我抓住智能指针并因此有两个副本,它会给我一个错误。

标签: c++polymorphismabstract-class

解决方案


推荐阅读