Как инициализировать массив struct с параметрами в конструкторе? Теперь у меня есть этот код:Инициализация структурного массива с параметрами конструктора
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;
}
};
...
Тогда мне нужно inintialize массив roundMatrix с параметром:
roundMatrix rounds[roundsNumber](teamsNumber);
И я получил ошибку:
variable-sized object 'rounds' may not be initialized
еще один вопрос. Как я могу инициализировать вектор с помощью структурных и конструкторских параметров?
Я могу понять наследование и инкапсуляцию, но почему бы вам не использовать 'struct' с, скажем, конструктором и методом или двумя? не являются строками и классами, эквивалентными в C++, где члены класса являются закрытыми по умолчанию, в отличие от структур, где они являются общедоступными? – stellarossa
Классы и структуры эквивалентны в C++, за исключением того, что классы имеют спецификатор частного доступа по умолчанию. Оба могут иметь функции-члены и переменные-члены. – vahancho
Да, классы и структуры почти одинаковы в C++, но лучше, если класс будет означать 'C++ class', а struct будет означать' C struct' для лучшего чтения и понимания кода, не так ли? –