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

时间:2014-02-14 05:04:27

标签: c++ memory dynamic

来自两个.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文件看不到电路板?

1 个答案:

答案 0 :(得分:0)

此处的众多错误之一是您已将board声明为构造函数中的局部变量。如果您希望在课堂外看到可见性,则需要将其设为班级Board的公共成员。

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