我试图在班上声明一个内存池。
但是编译器在'''之前显示了一些基本的错误,比如';'
或语法错误:'sizeof'
如果我将池用作局部变量,那么效果很好但是我真的想让它与该类一起使用。
我的用法有什么问题?
这是类,MAX_OBJ是const
class CData
{
public:
CData(void);
~CData(void);
private:
boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);
};
答案 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
。”
然后在一个或多个构造函数中指定如何初始化此成员。