【问题标题】:Using boost memory pool in class在课堂上使用提升内存池
【发布时间】:2011-03-27 04:04:27
【问题描述】:

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

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

或语法错误:'sizeof'

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

我的使用有什么问题?

这里是类,MAX_OBJ 是一个常量


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

【问题讨论】:

  • 编译器还会显示错误的位置。知道这一点也会很有用。

标签: c++ memory boost pool


【解决方案1】:

我认为这与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。”

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

【讨论】:

  • @Judarkness:不客气。我只是浪费了 10 分钟在我自己的代码中找到了一个丢失的;,所以我想我们都会在某些时候犯基本错误;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
相关资源
最近更新 更多