Вы можете инициализировать переменные const двумя способами
При инициализации строки
class Foo {
private:
const int MAXIMUM = 100;
};
Использование списка инициализации
class Foo {
Foo()
: MAXIMUM(100) {
}
Foo(const int MAXIMUM)
: MAXIMUM(MAXIMUM) {
}
private:
const int MAXIMUM;
}
В приведенном ниже параметре enter code here
элемент
Foo::Foo() {
MAXIMUM = 100;
}
MAXIMUM
уже создан, и вы пытаетесь изменить его значение, что недопустимо для const
переменных.
В приведенном ниже утверждении
const int Foo::MAXIMUM = 100;
MAXIMUM
не является статической переменной, поэтому она будет связана с объектом.Вы не можете получить доступ к MAXIMUM
, используя имя класса.