我有一个共享指针,但无法将其初始化为0。
这是我的代码:
class ROSThreadObjTest
{
private:
std::shared_ptr<int> var;
std::vector<ROSThreadObj> threads;
std::vector<void *(*)(void *)> functions;
public:
ROSThreadObjTest():(new int(0))
{
}
如何在调用构造函数时修改构造函数以将var的值设置为0?
答案 0 :(得分:2)
如果您想分配新指针并将int
设置为0
,那么您可以使用std::make_shared
ROSThreadObjTest() : var(std::make_shared<int>(0)) {}
如果您想将指针设置为nullptr
(如果这是0
的意思),那么您不必在构造函数中做任何特殊操作,因为shared_ptr
将默认初始化为。