我想创建一些私有变量,但是当我编译程序时,我得到一个错误。如果我将变量移到SimpleOpenNIViewer类之上而不是它的工作原理。
这是错误消息: /Workspace/virtual-reality/main.cpp:16:56:错误:'new'之前的预期标识符 PointCloud :: Ptr cloud_previous2(新的PointCloud);
这就是我编写代码的方式。谁能告诉我为什么这不起作用?
class SimpleOpenNIViewer
{
private:
PointCloud<PointXYZRGBA>::Ptr cloud_previous2 (new PointCloud<PointXYZRGBA>);
PointCloud<PointXYZRGBA>::Ptr cloud_previous1 (new PointCloud<PointXYZRGBA>);
PointCloud<PointXYZHSV>::Ptr cloud_HSVPrev2(new PointCloud<PointXYZHSV>);
PointCloud<PointXYZHSV>::Ptr cloud_HSVPrev1(new PointCloud<PointXYZHSV>);
PointCloud<PointXYZHSV>::Ptr cloud_HSVCurr(new PointCloud<PointXYZHSV>);
答案 0 :(得分:0)
确保已包含变量所依赖的所有相关标头或转发声明的类。
你的班级声明也没有右括号和半冒号。
答案 1 :(得分:0)
试试这个:
class SimpleOpenNIViewer
{
private:
PointCloud<PointXYZRGBA>::Ptr cloud_previous2 = new PointCloud<PointXYZRGBA>;
PointCloud<PointXYZRGBA>::Ptr cloud_previous1 = new PointCloud<PointXYZRGBA>;
PointCloud<PointXYZHSV>::Ptr cloud_HSVPrev2 = new PointCloud<PointXYZHSV>;
PointCloud<PointXYZHSV>::Ptr cloud_HSVPrev1 = new PointCloud<PointXYZHSV>;
PointCloud<PointXYZHSV>::Ptr cloud_HSVCurr = new PointCloud<PointXYZHSV>;