How to make_shared a derived class?

后端 未结 1 505
夕颜
夕颜 2021-02-18 22:06

I want to use the make_shared function with a derived class, like below

class Base {
     public:
     typedef std::shared_ptr          


        
相关标签:
1条回答
  • 2021-02-18 23:12

    std::shared_ptr has a converting constructor that can make a shared_ptr<Base> from a shared_ptr<Derived>, so the following should work:

    #include <memory>
    class Base {
        public:
        typedef std::shared_ptr<Base> Ptr;
    };
    class Derived : public Base {};
    
    int main() {
        Base::Ptr myPtr = std::make_shared<Derived>();
    }
    
    0 讨论(0)
提交回复
热议问题