类内使用new - shijiwensjw/C-learning GitHub Wiki
类内初始化变量new用法正确错误用法
错误情况:
在类的成员变量中直接定义变量并同时进行初始化。由于此变量为shared_ptr类型变量,所以需要new来为其实例化,分配空间。
Private:
PointCloudPtr cloud_ (new PointCloud);
出现错误
错误原因:
由于类是抽象的概念,在定义类的过程中不能存在分配空间等实例化的操作。否则便于类的抽象形式的概念相矛盾。
正确操作:
- 先定义变量:
PointCloudPtr cloud_;
- 再在类的构造函数时对其进行new实例化:
CameraStream() :
nh("~"), cloud_(new PointCloud)
{}