c++ - 在类里面使用boost内存池

标签 c++ memory boost pool

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

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

或语法错误:'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/

相关文章:

c++ - C++中指向成员的指针

C 在 Union 中释放一个字符串

C++:释放动态数组(结构成员)和指向该结构的指针的方法

c++ - 编译错误boost属性树c++

c++ - Linux系统中如何知道端口是否打开

c++ - 在 C++ 中是否有与此等效的东西

java - 从 Java VM 5 更新到 6 确实大大增加了内存消耗

c++ - 使用替代解析器 boost spirit 不佳的性能

c++ - Boost asio接收指定大小的数据

c++ - 尽快破坏事物是不是过早的优化?