1

我试图在我的班级中声明一个内存池。

但是编译器会显示一些基本错误,例如在 ';' 之前缺少 ')'

或语法错误:'sizeof'

如果我将池用作局部变量,它工作得很好,但我真的想让它与班级一起生活。

我的使用有什么问题?

这是类,MAX_OBJ 是一个常量


class CData
{
public:
 CData(void);
 ~CData(void);
private:
 boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);
};
4

1 回答 1

7

我不认为这与boost::pool.

但是这一行:

boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);

应该是:

boost::pool m_Pool;

然后你的构造函数应该是:

CData::CData() :
  m_Pool(sizeof(DWORD) * MAX_OBJ)
{
}

您不能在类声明中构造成员。你可以说:“我的班级有一个名为的成员m_Pool,其类型是boost::pool。”

然后在一个或多个构造函数中指定如何初始化该成员。

于 2010-08-09T07:31:16.980 回答