pcl 继承类中需要怎么定义pcl::shared_ptr<>类型的智能指针
时间: 2024-05-06 11:14:45 浏览: 204
采用引用计数的智能指针share_ptr
5星 · 资源好评率100%
在pcl继承类中定义pcl::shared_ptr<>类型的智能指针,可以通过以下方式实现:
1. 在类的头文件中,引入pcl/common/common.h头文件。
2. 使用pcl::shared_ptr<>定义指针类型。
3. 在类的构造函数中,使用pcl::make_shared<>来初始化指针类型。
以下是一个示例代码:
```c++
#include <pcl/common/common.h>
class MyPointCloud : public pcl::PointCloud<pcl::PointXYZ>
{
public:
typedef pcl::shared_ptr<MyPointCloud> Ptr;
MyPointCloud() : pcl::PointCloud<pcl::PointXYZ>(),
my_ptr_(pcl::make_shared<MyPointCloud>(*this)) {}
Ptr getSharedPtr() { return my_ptr_; }
private:
Ptr my_ptr_;
};
```
在上述示例代码中,我们定义了一个名为MyPointCloud的继承自pcl::PointCloud<pcl::PointXYZ>的类,并在其中定义了一个名为Ptr的pcl::shared_ptr<MyPointCloud>类型的智能指针。在构造函数中,我们使用pcl::make_shared<>来初始化my_ptr_指针类型,并将当前对象*this作为参数传递给make_shared()函数。最后,我们实现了一个名为getSharedPtr()的函数,用于返回my_ptr_指针类型的智能指针。
阅读全文