C++中shared_ptr向量向下转换为基类型的编译问题及多态示例
以下是用于演示shared_ptr向量配合多态基类使用的最小可编译示例代码:
#include <vector> #include <memory> class Base { public: virtual ~Base() = default; virtual int f() = 0; }; class Derived : public Base { public: ~Derived() = default; int f() override { return 0; } }; int main() { const std::vector<std::shared_ptr<const Base>> vec{std::make_shared<const Derived>()}; }
这段代码最初发布时存在两处编译错误,后续还出现了链接错误。由于无法删除或恢复至初始版本,遂将其保留为当前的最小示例。我参考过相关主题的其他问题,有回答提到需要使用纯虚基类,因此在这个示例中添加了虚析构函数和纯虚函数,确保代码能正常编译运行,用于展示多态基类在shared_ptr向量中的使用方式。
内容的提问来源于stack exchange,提问作者Joachim W
相关产品推荐
相关产品推荐

