2014-10-19 65 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