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++中不能使用。请查看可用的容器。使用更适合您需要的: