2014-10-19 70 views
0

如何在课外定义cloud如何定义静态提升共享指针?

typedef pcl::PointCloud<pclPoint> pclPointCloud 
class Deformer{ 
    public: 
    static pclPointCloud::Ptr cloud; 
}; 
pclPointCloud::Ptr Deformer::cloud = ??; // What to write here 

我不能使用NULL或类似pclPointCloud::Ptr Deformer::cloud = boost::shared_ptr<pclPointCloud>(NULL);来定义它吗?

回答

3

如果你只是删除= ??部分,它将被默认构造。这与将其设置为空(即调用reset())相同。

顺便说一下,关于类静态的一些有趣的事情是,即使POD类型像原始指针和整型类型默认情况下,当程序启动时它的值为零。所以即使是“未初始化”的原始指针也会为空。

+0

是的,它的工作。 – Shashwat 2014-10-19 10:13:02

+2

@Shashwat如此标记他的答案为“接受”。 – 2014-10-19 10:13:53

+0

我不得不等待8分钟 – Shashwat 2014-10-19 10:22:00