智能指针在用的时候一定要初始化,要不然运行的时候会出错(可以正常编译)。下面以pcl库做一个简单的说明。
在函数里面进行初始化:

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_source (new pcl::PointCloud<pcl::PointXYZ>)

在类里面初始化:类内部初始化的时候,不可以跟上面那样使用new关键字进行初始化,可以使用智能指针的reset方法在构造函数里面进行初始化:

input_cloud.reset(new pcl::PointCloud<pcl::PointXYZRGB>());