Константы в С++ аналогичны константам в Си. Для представления константы в Си использовалась только директива препроцессора #define:
В С++ для представления константы рекомендуется использовать объявление переменной с начальным значением и ключевым словом const:
Область видимости константы такая же, как у обычной переменной. С помощью ключевого слова const можно объявить указатель на константу
const int n=3;
m = &n;
Еще одна возможность const состоит в создании постоянного указателя на величину указанного типа
int *const ptri=&i;
Использование const имеет несколько преимуществ по сравнению с #define.
- При объявлении константы с использованием const явно указывается тип величины.
- Константа, объявленная с использованием const, просто согласуется с производными типами, например, объявление массива:
const int base_vals[5] = { 1000, 2000, 3500, 6000, 10000};
- Идентификаторы const подчиняются тем же правилам, что и переменные. Можно создавать константы с различной областью видимости.
Однако не любое использование #define можно исключить с помощью const. Например, нельзя объявить массив с размером, заданным через const.
int a;
Такой код работать не будет.
Перечислимый тип
С помощью ключевого слова enum можно объявить особый целочисленный тип с набором именованных целых констант, называемых перечислимыми константами:
enum flag {false, true};
С помощью такого определения создается целочисленный тип day с названиями 7 дней недели, каждое из которых является целочисленной константой.
Перечислимые константы — идентификаторы, которые по умолчанию имеют следующие значения: 0, 1, 2, 3, 4, 5, 6. Первому присваивается значение 0, и каждому последующему – на 1 больше предыдущего.
Если не устраивают значения по умолчанию, то перечислимые константы могут быть инициализированы произвольными целыми константами или константными выражениями
Перечислимая константа может быть объявлена анонимно (без тега):
signal=on;