在用PCL库的时候发现一种奇怪的类型:
pcl::PointCloud<pcl::PointXYZ>::Ptr
他的初始化是这样的:
pcl::PointCloud<pcl::PointXYZ >::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ >);
调用的时候非常奇怪:
既可以用cloud + . 来调用一部分成员
又可以用cloud + ->来调用一部分成员
问题1:
求解释这种语法。
问题2:
这种类型该怎么传参?我用引用传参,好像传参失败。
传参前调用cloud->size();还能输出0;但是传进去后赋值。再调用cloud->size()就挂了
传参函数是:
inline void setCloud(pcl::PointCloud<pcl::PointXYZ>::Ptr &cloud)
{
m_cloud = cloud;
}