class 数组默认设置 c++
class array default setting c++
我找不到关于是否可以为通过 class 创建的数组设置默认值的任何信息 and/or 通过 classes 创建的数组的任何语法创建。请帮忙
// strings
#include <string>
//normal setup
#include <iostream>
#include <string>
using namespace std;
// multi array setup
class recordtype {
public:
// array vars
string namef;
string namel;
char size;
};
// array
recordtype listof[11];
您可以使用此语法 value-initialize 数组的所有元素,例如:
recordtype listof[11]();
在您的示例中,这将 default-construct 所有 string
字段,并将所有 char
字段设置为 0。
不过,在这种情况下,最好给 recordtype
一个默认构造函数以根据需要初始化其成员,然后让 recordtype listof[11];
语法为您在每个元素上调用该构造函数.
否则,您可以为特定元素指定实际值,例如:
recordtype listof[11]{ // or: = {
{"name1", "name2", 'A'},
{"name1", "name2", 'B'},
// and so on...
};
在这种情况下,任何未显式初始化的数组元素都将是 value-initialized。
我找不到关于是否可以为通过 class 创建的数组设置默认值的任何信息 and/or 通过 classes 创建的数组的任何语法创建。请帮忙
// strings
#include <string>
//normal setup
#include <iostream>
#include <string>
using namespace std;
// multi array setup
class recordtype {
public:
// array vars
string namef;
string namel;
char size;
};
// array
recordtype listof[11];
您可以使用此语法 value-initialize 数组的所有元素,例如:
recordtype listof[11]();
在您的示例中,这将 default-construct 所有 string
字段,并将所有 char
字段设置为 0。
不过,在这种情况下,最好给 recordtype
一个默认构造函数以根据需要初始化其成员,然后让 recordtype listof[11];
语法为您在每个元素上调用该构造函数.
否则,您可以为特定元素指定实际值,例如:
recordtype listof[11]{ // or: = {
{"name1", "name2", 'A'},
{"name1", "name2", 'B'},
// and so on...
};
在这种情况下,任何未显式初始化的数组元素都将是 value-initialized。