在课堂上使用boost内存池

Jud*_*ess 1 c++ memory boost pool

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

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

或语法错误:'sizeof'

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

我的用法有什么问题?

这是类,MAX_OBJ是const


class CData
{
public:
 CData(void);
 ~CData(void);
private:
 boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);
};
Run Code Online (Sandbox Code Playgroud)

ere*_*eOn 7

我不认为这与任何事情有关boost::pool.

但这一行:

boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);
Run Code Online (Sandbox Code Playgroud)

应该是:

boost::pool m_Pool;
Run Code Online (Sandbox Code Playgroud)

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

CData::CData() :
  m_Pool(sizeof(DWORD) * MAX_OBJ)
{
}
Run Code Online (Sandbox Code Playgroud)

您无法在类声明中构造成员.你可以这样说:"我的班级有一个名为m_Pool其类型的成员boost::pool."

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