关于make_shared无法访问非公有构造函数的解决方法

方法一:

class Obj {

    struct enable_shared : public Obj {
        enable_shared(...) : Obj(...) { }
    };
     
    void someFunction() {
        auto ptr = std::make_shared<enable_shared>(...);
    }

private:
    Obj(...);

};

方法二:

std::shared_ptr<Obj> pA{new Obj()};
posted @ 2020-08-10 17:38  简讯  阅读(556)  评论(0编辑  收藏  举报