c++ - 错误:未在此范围内声明“板”(C++)
问题描述
我正在为棋盘游戏编写代码并尝试对其进行测试。
我无法弄清楚如何解决这个给出消息的错误:
错误:“板”未在此范围内声明”。
此消息出现在第 9 行。我非常感谢您的帮助。
#include <iostream>
#include "Board.h"
using namespace std;
int main()
{
Board B;
B.Player1(*board[15][15], B.pathP1[57]);
B.printBoard();
}
void Board::Player1(char *board[15][15], char pathP1[57])
{
Board.h 在下面
#ifndef BOARD_H
#define BOARD_H
struct Board
{
//Board board();
char *board[15][15];
char pathP1[57];
void Player1(char *board[15][15], char pathP1[57]);
void printBoard();
};
#endif //BOARD_H
解决方案
所以你对对象的工作方式有误解。无需将成员变量传递给成员函数,因为成员函数可以自动访问成员变量。这是面向对象编程的主要特征之一(至少在 C++ 中)。
像这样重写你的代码
struct Board
{
//Board board();
char *board[15][15];
char pathP1[57];
void Player1();
void printBoard();
};
int main()
{
Board B;
B.Player1();
B.printBoard();
}
void Board::Player1()
{
// do something with board and pathP1
...
}
此外,您需要修改数组和函数的工作方式。尽管您不需要按照您尝试的方式将board
andpathP1
数组传递给Player1
方法,但它也是不正确的。
推荐阅读
- c# - Sendgrid API 返回 Forbidden C#
- react-native - 世博会:找不到变量要求
- c# - 如何使用动态到正常模型?
- linux - 尝试杀死正在运行的python脚本时“没有这样的进程”
- java - org.postgresql.util.PSQLException 在 DefaultLockRegistry#acquire 期间“违反唯一约束”
- url - 从 MS Word 的目录中清除 URL 链接
- java - 截屏并将图像显示到图库中
- haskell - 如何用“反射”包替换 ImplicitParams?
- reactjs - 错误无法读取未定义的属性“匹配”
- linux - 对主要命令输出的所有 PID 执行命令?