用C ++声明私有变量

时间:2015-09-27 15:10:14

标签: c++

我想创建一些私有变量,但是当我编译程序时,我得到一个错误。如果我将变量移到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>);

2 个答案:

答案 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>;