Как создать конструктор c ++ с 2d массивами в качестве параметров - PullRequest
1 голос
/ 05 марта 2020

Мне нужен класс с двумерным массивом для хранения мест на доске. Но я не могу сделать конструктор, который делает это правильно, настраивает это поле.

это код, который я получаю тип массива без присваиваемой ошибки, ячейка является typedefStruct

Board::Board(waterCraft * listOfCraft, cell gameBoard[][10]) {
    this->listOfCraft = listOfCraft;
    this->gameBoard = gameBoard;
}

1 Ответ

0 голосов
/ 05 марта 2020
  1. Если Board :: gameBoard имеет тип cell** т.е. указатель на указатель: cell** gameBoard или cell* gameBoard[]

  2. If Board :: gameBoard имеет тип cell[10][10] (при условии, что количество строк равно 10), то есть массив 2d:

constexpr int R = 10, C = 10;
Board::Board(waterCraft * listOfCraft, cell gameBoard[R][C]) {
    this->listOfCraft = listOfCraft;
    std::copy(&gameBoard[0][0], &gameBoard[0][0] + R*C, &this->gameBoard[0][0]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...