我想我可能需要在我的应用程序中执行类似以下伪代码的操作:
boost::shared_ptr<T> p;
...
...
p = boost::shared_ptr<T>(new T);
我意识到使用赋值运算符还有其他选项,但我在boost::shared_ptr
文档/示例中注意到他们从未讨论过像这样涉及默认构造函数的案例。
我想我的问题是:这是有效的用途吗?换句话说,它是否合法,是否会导致潜在的内存泄漏?感谢任何想法/更正。非常感谢!
shared_ptr
注意:我确实记得读过,正如下面的一些评论所建议的那样,他们建议在调用构造函数时始终使用命名new
。尽管如此,我还是很难想象这会造成任何伤害。如果您有任何反例,请发布它们。谢谢!