gpt4 book ai didi

c++ - 将 std::shared_ptr 与 protected 构造函数\析构函数一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:09 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
How do I call ::std::make_shared on a class with only protected or private constructors?

我想创建一个指向类的共享指针,并有一个返回它的工厂方法,同时保护构造函数/析构函数。由于共享指针无法访问构造函数或析构函数,因此出现编译错误。

我正在使用 llvm 4.1,但我正在寻找一种可以独立于编译器的解决方案(除了公开构造函数\析构函数之外)。

这是一个代码示例:

class Foo
{
public:
static std::shared_ptr<Foo> getSharedPointer()
{
return std::make_shared<Foo>();
}

protected:
Foo(int x){}
~Foo(){}

};

有什么想法吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com