如何定义静态boost共享指针?

时间:2014-10-19 10:06:26

标签: c++ boost static initialization shared-ptr

如何在课堂外定义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);

之类的东西来定义它

1 个答案:

答案 0 :(得分:3)

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

顺便说一句,关于类静态的一些有趣的事情是,即使POD类型(如原始指针和整数类型)在程序启动时默认值为零。因此,即使是“未初始化”的原始指针也将为空。