Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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++_Arrays_Class_Constructor - Fatal编程技术网

C++ 构造函数C+中大小未定义的数组+;

C++ 构造函数C+中大小未定义的数组+;,c++,arrays,class,constructor,C++,Arrays,Class,Constructor,我试图找到一种方法,在类中定义一个大小未知的数组,并使用构造函数“填充”。下面是一个简单的例子,让您大致了解我正在尝试做什么: #include <iostream> #include <vector> using namespace std; class MyClass{ public: string Name; double x[]; double y[]; MyClass(string aName, double aX, doub

我试图找到一种方法,在类中定义一个大小未知的数组,并使用构造函数“填充”。下面是一个简单的例子,让您大致了解我正在尝试做什么:

#include <iostream>
#include <vector>
using namespace std;

class MyClass{
public:
    string Name;
    double x[];
    double y[];

    MyClass(string aName, double aX, double aY){
        Name=aName;
        x[]=aX;
        y[]=aY;
    }

};

int main() {
  MyClass object1("Object1",{1.0,2.0,3.0},{4.0,5.0,6.0});
}
#包括
#包括
使用名称空间std;
类MyClass{
公众:
字符串名;
双x[];
双y[];
MyClass(字符串名称、双aX、双aY){
Name=aName;
x[]=aX;
y[]=aY;
}
};
int main(){
MyClass对象1(“对象1”,{1.0,2.0,3.0},{4.0,5.0,6.0});
}
显然,有很多错误,所以我不知道从哪里开始,如何实现我的目标

感谢您的指导

编辑

以下是一个基于此问题答案的有效解决方案。谢谢大家

#包括
#包括
使用名称空间std;
类MyClass{
公众:
字符串名;
向量x;
向量y;
MyClass(字符串aName、向量aX、向量aY){
Name=aName;
x=aX;
y=aY;
}
};
int main(){
MyClass对象1(“对象1”,{1.0,2.0,3.0},{4.0,5.0,6.0});

标准C++中不支持CUT

可变长度数组。 在您的例子中,

std::vector x;
&c.实际上是替代品,如果您要编写

MyClass object1{"Object1",{1.0,2.0,3.0},{4.0,5.0,6.0}};

相反,请注意,这不会调用构造函数,您可以自由删除构造函数,而不是尝试修复编译错误。

不确定大小的数组是不完整的类型。不可能存在不完整类型的变量。因此,您的成员变量格式不正确。包含成员的数组变量必须具有编译时间常数大小


如果需要数组运行时大小,则需要动态分配。最简单的解决方案是使用<代码> STD::vector /c++。这样的数组必须有固定的大小。否则,使用<代码> STD::vector < /代码>。如在回答和注释中所解释的,C++ C++中不能使用。请查看可用的容器。使用更适合您需要的: