gpt4 book ai didi

C++ 从 get 函数中访问和操作二维指针数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:10 25 4
gpt4 key购买 nike

我正在为我的类(class)作业制作一个战舰游戏,我在使用的其中一个类(class)中遇到了一些获取函数的问题。我的游戏的基本思路是创建一个 2D 10X10 数组,称为网格,其中填充了空指针以表示棋盘。我创建了 2 个类,Board 和 Ship。网格数组是 Ship 类型,我使用一种算法将 Ships 随机填充到数组中。我使用 Board 类访问网格数组和命中数组(我用它来跟踪命中)。

但是我无法弄清楚 getShips 函数如何返回网格数组。 hits 数组只是 bool 值,所以这很容易,但我对 C++ 不够熟练,无法使 getShips 函数正确返回网格数组,这是一种 Ship 指针类型。如果有任何帮助,我将不胜感激。

class Board
{

private:

Ship *grid[10][10];

bool hits[10][10];

public:
// get functions

Ship *getShips()
{
return grid;
}

bool getHits()
{
return hits;
}
};

我还想知道是否可以通过调用 getShips 函数在其他函数中操作数组。像这样的东西:

for (int x=0; x<10; x++)
{
for (int y=0; y<10; y++)
{
board.getShips()[x][y]=nullptr;
}
}

最佳答案

好的。首先,我将修改 getShips 和 getHits 函数。拥有这样的东西:

Ship *getShips(int x, int y){ return grid[x+y*10]; }
bool getHits(int x, int y){return hits[x+y*10];}

这样您就可以简化代码并避免一些错误。当您像使用

那样声明一个多维数组时
Ship *grid[10][10];

bool hits[10][10];

您基本上是在声明指向船舶指针的指针。

如果您使用 C++ 编写代码,我会尝试使用最少数量的指针。尝试改用 STL 容器。他们为您进行自动内存管理,这可能会为您节省一些时间。

关于C++ 从 get 函数中访问和操作二维指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22814808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com