Использование расширенного пула памяти в классе
Я пытался объявить пул памяти в моем классе.
Но компилятор показывает некоторую базовую ошибку, например пропущенную ')' перед ';'
или синтаксическая ошибка: '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
".
Затем вы указываете в одном или нескольких конструкторах, как этот элемент инициализируется.