我需要一个带有2d数组的类,该类用于在板上存储位置。但是我不能构造一个使它正确设置此字段的构造函数。

这是我得到的数组类型无法分配错误的代码,单元格是typedefStruct

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

最佳答案

  • 如果Board::gameBoard是cell**类型,即指向指针的指针:cell** gameBoardcell* gameBoard[]
  • 如果Board::gameBoard为cell[10][10]类型(假设行数为10),即二维数组:
  • 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]);
    }
    

    关于c++ - 如何使用2d数组作为参数创建C++构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60552009/

    10-12 22:50