Использование расширенного пула памяти в классе

Я пытался объявить пул памяти в моем классе.

Но компилятор показывает некоторую базовую ошибку, например пропущенную ')' перед ';'

или синтаксическая ошибка: 'sizeof'

Это хорошо работает, если я использовал пул как локальную переменную, но я действительно хочу сделать его живым с классом.

Что плохого в моем использовании?

Вот класс, MAX_OBJ является константой


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

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".

Затем вы указываете в одном или нескольких конструкторах, как этот элемент инициализируется.

Другие вопросы по тегам