来自两个.cpp文件中的第一个的这行代码
静态字节板[64 + 3]; ...更多代码//这里声明了67个数组的数组
这里使用了
if((board [FR(move)] == WHITE_PAWN&& R(TO(move))== RANK_8)
以及代码中的更多内容。
我正在尝试将其转换为更多面向对象的程序。首先,我试图在另一个.h和.cpp文件中分配电路板
这是我的board.h文件
class Board
{
public:
Board();
private:
};
这是我的other.cpp文件
Board::Board()
{
byte *board =new byte[67];
}
这是我得到的错误
mscp.cpp:在函数'int search(int,int,int)'中:
mscp.cpp:1649:26:错误:未在此范围内声明'board'
for(i = ply-4; i> = board [LAST]; i- = 2){ ^ board.cpp:在构造函数'Board :: Board()'中: board.cpp:7:2:错误:在此范围内未声明'byte'
字节板=新字节[67]; ^ board.cpp:7:7:错误:在'board'之前预期';'
字节板=新字节[67];
为什么我的第一个.cpp文件看不到电路板?
答案 0 :(得分:0)
此处的众多错误之一是您已将board
声明为构造函数中的局部变量。如果您希望在课堂外看到可见性,则需要将其设为班级Board
的公共成员。
PS:即使在排除其他问题之后,您可能也会泄漏内存!因为当board
超出范围时,您没有取消分配在构造函数末尾分配的堆空间。