Я использую codepad.org
class a {
private:
const unsigned long b = 100;
};
Строка 3: ошибка: ISO C ++ запрещает инициализацию члена ‘b’
компиляция прервана из-за ошибок -Wfatal.
Извините, если я что-то упустил очевидное, но что может быть не так?
До C ++ 11 вы можете только инициализировать статический элемент данных const в определении класса:
static const unsigned long b = 100;
Обычно это то, что вы хотите. Не имеет смысла иметь все экземпляры a
иметь это постоянное значение дублируется среди них.
Если вы включите поддержку C ++ 11, ваш код скомпилируется.
Инициализация в классе разрешена только для static
const
целочисленные типы в C ++ 03, и ваша переменная не static
,
Либо сделать это static
(в этом случае вы должны заметить, что вы также должны определить его в этом случае), или использовать компилятор C ++ 11.