Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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++,我有一个类,如下所示: #include <string> using std::string; class cOb { private: string var1; int var2; int var3; public: cOb(string v1, int v2, int v3); }; cOb::cOb(string v1, int v2, int v3) { var1 = v1; var2 = v2; v

我有一个类,如下所示:

#include <string>
using std::string;

class cOb
{
private:
    string var1;
    int    var2;
    int    var3;

public:
    cOb(string v1, int v2, int v3);
};

cOb::cOb(string v1, int v2, int v3)
{
    var1 = v1;
    var2 = v2;
    var3 = v3;
}

int main()
{
    string x = "Somethin";
    int y = 0, z = 10;
    cOb object1(x,y,z);
}
编译器抱怨并告诉我此错误:

错误:数组初始值设定项错误

如何创建默认值,从而不必初始化每个对象,或者如何以正确的方式初始化此数组?

不能以这种方式初始化对象数组。您可以创建一个没有参数的默认构造函数,它将成员初始化为默认值。或者,如果您使用的是C++11,则可以使用类内成员初始化:

int var2 = 0;
int var3 = 0;

不能以这种方式初始化对象数组。您可以创建一个没有参数的默认构造函数,它将成员初始化为默认值。或者,如果您使用的是C++11,则可以使用类内成员初始化:

int var2 = 0;
int var3 = 0;

不能以这种方式初始化对象数组。您可以创建一个没有参数的默认构造函数,它将成员初始化为默认值。或者,如果您使用的是C++11,则可以使用类内成员初始化:

int var2 = 0;
int var3 = 0;

不能以这种方式初始化对象数组。您可以创建一个没有参数的默认构造函数,它将成员初始化为默认值。或者,如果您使用的是C++11,则可以使用类内成员初始化:

int var2 = 0;
int var3 = 0;
你可以写:

cOb Objects[10] = { cOb("x", 0, 0), cOb("y", 1, 1),  /* etc. */  };
无法指定用于初始化所有对象的单个默认值。为此,您必须为
cOb
提供一个默认构造函数。最简单的方法是为现有构造函数的参数提供默认值:

cOb (string v1 = "", int v2 = 0, int v3 = 0 );
但是,如果使用
std::vector
作为容器,而不是C样式数组,则可以传递默认值:

std::vector<cOb> Objects( 10, cOb("x", 0, 0) );
std::向量对象(10,cOb(“x”,0,0));
您可以编写:

cOb Objects[10] = { cOb("x", 0, 0), cOb("y", 1, 1),  /* etc. */  };
无法指定用于初始化所有对象的单个默认值。为此,您必须为
cOb
提供一个默认构造函数。最简单的方法是为现有构造函数的参数提供默认值:

cOb (string v1 = "", int v2 = 0, int v3 = 0 );
但是,如果使用
std::vector
作为容器,而不是C样式数组,则可以传递默认值:

std::vector<cOb> Objects( 10, cOb("x", 0, 0) );
std::向量对象(10,cOb(“x”,0,0));
您可以编写:

cOb Objects[10] = { cOb("x", 0, 0), cOb("y", 1, 1),  /* etc. */  };
无法指定用于初始化所有对象的单个默认值。为此,您必须为
cOb
提供一个默认构造函数。最简单的方法是为现有构造函数的参数提供默认值:

cOb (string v1 = "", int v2 = 0, int v3 = 0 );
但是,如果使用
std::vector
作为容器,而不是C样式数组,则可以传递默认值:

std::vector<cOb> Objects( 10, cOb("x", 0, 0) );
std::向量对象(10,cOb(“x”,0,0));
您可以编写:

cOb Objects[10] = { cOb("x", 0, 0), cOb("y", 1, 1),  /* etc. */  };
无法指定用于初始化所有对象的单个默认值。为此,您必须为
cOb
提供一个默认构造函数。最简单的方法是为现有构造函数的参数提供默认值:

cOb (string v1 = "", int v2 = 0, int v3 = 0 );
但是,如果使用
std::vector
作为容器,而不是C样式数组,则可以传递默认值:

std::vector<cOb> Objects( 10, cOb("x", 0, 0) );
std::向量对象(10,cOb(“x”,0,0));

我尽量简短>>我尽量简短>>我尽量简短>>我尽量简短>>我尽量简短>>