使用构造函数参数初始化结构数组
Initializing struct array with constructor parameters
如何在构造函数中使用参数初始化结构数组?现在我有这个代码:
struct roundMatrix {
private:
int **matrix;
public:
roundMatrix(int teamsNumber) {
matrix = new int*[teamsNumber];
for(int i=0;i<teamsNumber;i++) {
matrix[i] = new int[teamsNumber];
}
}
int addPartners(int first, int second) {
if(matrix[first][second] == -1 && matrix[second][first] == -1) {
matrix[first][second] = 0;
matrix[second][first] = 0;
}
else {
return -1;
}
return 0;
}
};
...
然后我需要使用参数对圆形矩阵数组进行内化:
roundMatrix rounds[roundsNumber](teamsNumber);
我收到一个错误:
variable-sized object 'rounds' may not be initialized
还有一个问题。如何使用结构体和构造函数参数初始化向量?
您不能以这种方式初始化数组。它应该写成:
roundMatrix rounds[roundsNumber] = {teamsNumber, teamsNuber, ...);
或者,您需要为roundMatrix
类实现一个默认构造函数,该构造函数将自动初始化数组中的项。
起初你的结构是类。 struct
应该在没有方法、继承、封装和其他类的东西的情况下C++中使用,就像在标准C
代码中一样。
接下来,类名应为大写:名称的第一个字符应为大写,名称中的每个新单词应以大写字符开头。顺便说一下,您的公司代码约定可能会覆盖此默认约定,该约定几乎在代码C++任何地方使用。
最后:如果你有一个此类的对象数组,你不能在初始化期间为这个类的每个对象调用构造函数。你可以做这样的事情:
roundMatrix *rounds = new roundMatrix[roundsNumber];
for(i = 0; i < roundsNumber; i++)
rounds[i] = roundMatrix(teamsNumber);
相关文章:
- C++将文本文件中的数据读取到结构数组中
- JSON转换为nlohmann JSON-lib中的结构数组
- 需要帮助将结构数组传递给函数
- 在 64 位边界上对齐C++结构数组?
- 带有枚举方向/类型的气泡排序结构数组
- 在C++中访问结构数组中的数据
- 从指向结构数组的指针中提取元素
- 如何制作一个地图,其中的值是C++中的结构数组
- 如何在函数中显示结构数组
- 包含作为成员C++函数的结构数组
- 如何修复函数中的 fstream 文件输入以将正确的信息存储在结构数组中?
- std::transform 将一个结构数组复制到另一个结构数组
- 将非托管结构数组封送到托管数组
- 显示结构数组
- 结构数组中所有类似字段的总和
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 在 glsl opengl 中将嵌套结构数组作为统一传递
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 如何将字符串字符与结构数组进行比较?
- C++结构数组