我试图在我的类中声明一个内存池。
但是编译器显示一些基本错误,比如在 ';' 之前缺少 ')'
或语法错误:'sizeof'
如果我将池用作局部变量,效果很好,但我真的想让它与类一起使用。
我的用法有什么问题吗?
这是类,MAX_OBJ 是一个常量
class CData
{
public:
CData(void);
~CData(void);
private:
boost::pool m_Pool(sizeof(DWORD) * MAX_OBJ);
};
最佳答案
我不认为它与 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
。”
然后,您可以在一个或多个构造函数中指定该成员的初始化方式。
关于c++ - 在类里面使用boost内存池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438090/