关于构造函数问题
在.h中定义了指针class PointCloudYZ
{
private:
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud;
pcl::search::Search<pcl::PointXYZ>::Ptr tree;
pcl::PointCloud <pcl::Normal>::Ptr normals;
}
然后在.c的构造函数中,申请内存
PointCloudYZ::PointCloudYZ(void)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::search::Search<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);
pcl::PointCloud <pcl::Normal>::Ptr normals(new pcl::PointCloud <pcl::Normal>);
}
在main中使用cloud,为什么会报错;
if ( pcl::io::loadPCDFile <pcl::PointXYZ> (path, *cloud) == -1)
{
std::cout << "Cloud reading failed." << std::endl;
return (-1);
}
应该怎么使用呢 这看不出什么问题,需要完整代码或者类定义、main函数的完整代码。 本帖最后由 闪亮的马路 于 2020-11-26 10:51 编辑
报的错误是说cloud没有初始化
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::search::Search<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);
pcl::PointCloud <pcl::Normal>::Ptr normals(new pcl::PointCloud <pcl::Normal>);
以上不是已经初始化了吗? 问题找到了
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::search::Search<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);
pcl::PointCloud <pcl::Normal>::Ptr normals(new pcl::PointCloud <pcl::Normal>);
修改为
cloud = pcl::PointCloud<pcl::PointXYZ>::Ptr(new pcl::PointCloud<pcl::PointXYZ>);
tree = pcl::search::Search<pcl::PointXYZ>::Ptr(new pcl::search::KdTree<pcl::PointXYZ>);
normals = pcl::PointCloud <pcl::Normal>::Ptr(new pcl::PointCloud <pcl::Normal>); xieglt 发表于 2020-11-26 10:21
这看不出什么问题,需要完整代码或者类定义、main函数的完整代码。
问题已经解决,所以给你个最佳吧!
页:
[1]