2017-11-05 8 views
0

shared_ptr<SubClass>shared_ptr<BaseClass>のサブクラスである可能性がありますか?`shared_ptr <SubClass>`は `shared_ptr <BaseClass>`のサブクラスになりますか?

私はC<T>C<SubClass>C<BaseClass>のサブクラスであることをテンプレートクラスを実装する方法だろうか?

私は上記を例えばshared_ptr<SubClass>shared_ptr<BaseClass>と見てきました。後者に前者を割り当てることができます。

+2

'shared_ptr 'を 'shared_ptr 'に割り当てることが、それらが基本クラス/サブクラス関係にあることを意味するものではありません。 – StoryTeller

答えて

5

クラスshared_ptr<SubClass>shared_ptr<BaseClass>から継承されません。

Iは、上記と観察き例えば、私は後者に前者を割り当てることができshared_ptr<SubClass>shared_ptr<BaseClass>、。

shared_ptr<BaseClass>Yが​​である場合、変換を行い、このような代入演算子template< class Y > shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;を有しています。

+0

ありがとう!私はそれが継承だと思ったが、これは理にかなっている! – user111854

関連する問題