PCL 中的这些提升共享指针初始化是否不同?
Are these boost shared pointer initializations in PCL different?
我使用 PCL 有一段时间了,看到了几种初始化 boost::shared_ptr
的方法。以下是我正在考虑的示例:
pointCloudType::Ptr cloud (new pointCloudType);
pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType);
pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType());
它们之间有什么区别吗and/or使用一个优于其他的优势?
感谢@taketwo,我得到了这个答案:
Examples 2 and 3 are identical. Example 1 should be preferred as it is shorted and does not involve call to copy-constructor.
作为例子1应该是首选,当一个指针已经声明但没有初始化时,要走的路是
cloud.reset(new pointCloudType);
我使用 PCL 有一段时间了,看到了几种初始化 boost::shared_ptr
的方法。以下是我正在考虑的示例:
pointCloudType::Ptr cloud (new pointCloudType);
pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType);
pointCloudType::Ptr cloud = pointCloudType::Ptr(new pointCloudType());
它们之间有什么区别吗and/or使用一个优于其他的优势?
感谢@taketwo,我得到了这个答案:
Examples 2 and 3 are identical. Example 1 should be preferred as it is shorted and does not involve call to copy-constructor.
作为例子1应该是首选,当一个指针已经声明但没有初始化时,要走的路是
cloud.reset(new pointCloudType);