C ++覆盖不适用于std :: shared_pointer

时间:2017-03-09 07:21:19

标签: c++ c++11 c++14 shared-ptr

假设我有以下示例代码:

class Base {};
class Derived : public Base {};

class A {
  virtual shared_ptr<Base> method();
};

class B : public A {
  virtual shared_ptr<Derived> method() override;
};

我收到以下错误(使用VS 2013):

错误C2555:&#39; B ::方法&#39;:覆盖虚函数返回类型不同且不是&#39; A :: method&#39;

我认为问题是shared_ptr<Derived>不是{/ 1}}的特殊化/不继承{.1}。

有没有办法让共享指针用于继承?

0 个答案:

没有答案