gpt4 book ai didi

c++ - 如何将结构传递给函数调用

转载 作者:行者123 更新时间:2023-11-28 00:47:45 28 4
gpt4 key购买 nike

我正在尝试将名为“坐标”的结构传递给具有 2 个整数的函数,因此在调用函数时,可以输入整数作为函数的参数。示例:

这是我想要使用的结构:

struct coordinate
{
int row;
int col;
};

函数原型(prototype)如下所示:

bool    IsInMaze(coordinate);

我想要做的是像这样调用函数...

IsInMaze(1,5);

因此 1 将是行,5 将是列。该函数基本上是检查坐标 (int) 是否在特定尺寸的大小范围内......像这样

bool MazeClass::IsInMaze(coordinate location)
{
if(location.row < 0 || location.row > height || location.col < 0 || location.col > width)
return false;
else
return true;
}

但是我得到这个错误...

ola4A1.cc: In function \u2018int main(int, char**)\u2019:
ola4A1.cc:30: error: no matching function for call to \u2018MazeClass::IsInMaze(int, int)\u2019
MazeClass.h:30: note: candidates are: bool MazeClass::IsInMaze(coordinate)
ola4A1.cc:35: error: no matching function for call to \u2018MazeClass::IsInMaze(int, int)\u2019
MazeClass.h:30: note: candidates are: bool MazeClass::IsInMaze(coordinate)

我从来没有真正被教导过这个,所以我假设我只是不理解这个权利。我怎样才能编写这个函数,我可以按照我想要的方式调用它?谢谢。

最佳答案

您出错的地方是期望您的结构的内容可以作为参数传递给需要您的结构实例的函数。

IsInMaze(int, int)IsInMaze(coordinate) 不同。要正确调用声明的函数,您必须先创建一个 coordinate,然后传递它:

coorindate c;
c.row = 1;
c.col = 5;
IsInMaze(c);

或者,您可以声明另一个带有两个 int 参数的 IsInMaze:

bool IsInMaze(int row, int col);

关于c++ - 如何将结构传递给函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607852/

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