【发布时间】:2021-06-15 23:06:57
【问题描述】:
我正在尝试创建一个抽象方法来克隆从 base 派生的类并将它们作为 shared_ptr 返回,如下所示:
class Base {
public:
virtual std::shared_ptr<BaseSymbol> clone() = 0;
};
class Derived : public Base {
public:
Derived(const Derived& derived);
std::shared_ptr<Derived> clone();
};
这让我遇到编译错误。我知道这可以用普通指针来实现,那么我怎样才能让它与共享指针一起工作呢?
【问题讨论】:
标签: c++ polymorphism overriding smart-pointers covariant-return-types