在课堂上使用boost内存池

时间:2010-08-09 07:29:32

标签: c++ memory boost pool

我试图在班上声明一个内存池。

但是编译器在'''之前显示了一些基本的错误,比如';'

或语法错误:'sizeof'

如果我将池用作局部变量,那么效果很好但是我真的想让它与该类一起使用。

我的用法有什么问题?

这是类,MAX_OBJ是const


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

1 个答案:

答案 0 :(得分: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。”

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