我正在尝试在类中动态分配静态字节板[67]



这行代码来自两个.cpp文件中的第一个

静态字节板[64+3]。。。这里声明了更多67的代码//板阵列

这里用的是

如果((board[FR(move)]==WHITE_PAWN&R(TO(移动))==秩K_8)

以及代码中的更多内容。

我正试图把它转换成一个更像是面向对象的程序。首先,我试图在另一个.h和.cpp文件中为板分配

这是我的板.h文件

class Board
{
public:
Board();
private:
};

这是我的另一个.cpp文件

Board::Board() 
{
byte *board =new byte[67];
}

这是我得到的错误

mscp.pp:在函数"int search(int,int,int)"中:

mscp.cpp:1649:26:错误:未在此作用域中声明"board">

对于(i=ply-4;i>=板[LAST];i-=2){^board.cpp:在构造函数"board::board.()"中:board.cpp:7:2:错误:未在此作用域中声明"byte">

字节板=新字节[67];^board.cpp:7:7:错误:应为";"在"板"之前

字节板=新字节[67];

为什么我的第一个.cpp文件看不到板?

这里的众多错误之一是您仅在构造函数中将board声明为局部变量。如果您希望在类之外具有可见性,则需要使其成为Board类的公共成员。

PS:即使在解决了其他问题之后,你现在也可能会泄露内存!因为当board超出范围时,您没有取消分配在构造函数末尾分配的堆空间。

最新更新