Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中声明私有变量+;_C++ - Fatal编程技术网

C++ 在C+中声明私有变量+;

C++ 在C+中声明私有变量+;,c++,C++,我想创建一些私有变量,但是当我编译程序时,我得到了一个错误。如果我将变量移到SimplePenniviewer类的上方,它将无法工作 以下是错误消息: /Workspace/virtual reality/main.cpp:16:56:错误:在“new”之前应该有标识符 点云::Ptr cloud_previous2(新点云) 这就是我编写代码的方式。有人能告诉我为什么这不起作用吗 class SimpleOpenNIViewer { private:

我想创建一些私有变量,但是当我编译程序时,我得到了一个错误。如果我将变量移到SimplePenniviewer类的上方,它将无法工作

以下是错误消息: /Workspace/virtual reality/main.cpp:16:56:错误:在“new”之前应该有标识符 点云::Ptr cloud_previous2(新点云)

这就是我编写代码的方式。有人能告诉我为什么这不起作用吗

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>);
类SimplePenniViewer
{
私人:
点云::Ptr cloud_previous2(新点云);
点云::Ptr cloud_previous1(新点云);
点云::Ptr cloud_HSVPrev2(新点云);
点云::Ptr cloud_HSVPrev1(新点云);
点云::Ptr cloud_HSVCurr(新点云);

确保已包含变量所依赖的所有相关标头或前向声明的类

您的类声明也缺少右大括号和分号。

请尝试以下操作:

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>;
类SimplePenniViewer
{
私人:
点云::Ptr cloud_previous2=新点云;
点云::Ptr cloud_previous1=新点云;
点云::Ptr cloud\u HSVPrev2=新点云;
点云::Ptr cloud\u HSVPrev1=新点云;
点云::Ptr cloud\u HSVCurr=新点云;

请分享您得到的错误。“如果我将变量移到类上方”你的意思是使它们成为全局变量?是的,如果我将它们移到SimplePenniviewer类之上。这种方式对编译器有效我确实尝试过,但我得到了不同的错误。/Workspace/virtual reality/main.cpp:16:88:警告:非静态数据成员初始值设定项仅可用于-std=c++11或-std=gnu++11[默认启用]PointCloud::Ptr cloud\u previous2=新建点云;或者在此处声明变量并在构造函数中新建它们。@NerimanArif,因此将
-std=c++11
传递给编译器。