Константы в С++

Язык C++ / Константы в С++

Константы в С++ аналогичны константам в Си. Для представления константы в Си использовалась только директива препроцессора #define:

#define MAX 100

В С++ для представления константы рекомендуется использовать объявление переменной с начальным значением и ключевым словом const:

const тип ИмяПеременной = НачальноеЗначение;
const int n=10;

Область видимости константы такая же, как у обычной переменной. С помощью ключевого слова const можно объявить указатель на константу
const тип *ИмяПеременной;

const int *m; // m – указатель на константу типа int
const int n=3;
m = &n;

Еще одна возможность const состоит в создании постоянного указателя на величину указанного типа
тип *const ИмяПеременной = Значение;

int i;
int *const ptri=&i;

Использование const имеет несколько преимуществ по сравнению с #define.

  • При объявлении константы с использованием const явно указывается тип величины.
  • Константа, объявленная с использванием const, просто согласуется с производными типами, например, объявление массива:
    const int base_vals[5] = { 1000, 2000, 3500, 6000, 10000};
  • Идентификаторы const подчиняются тем же правилам, что и переменные. Можно создавать константы с различной областью видимости.

Перечислимый тип данных

С помощью ключевого слова enum можно объявить особый целочисленный тип с набором именованных целых констант, называемых перечислимыми константами:

enum тег {СписокИменованныхКонстант};

enum day {sun, mon, tue, wen, thu, fri, sat};
enum flag {false, true};

С помощью такого определения создается целочисленный тип day с названиями 7 дней недели, каждое из которых является целочисленной константой.

Перечислимые константы — идентификаторы, которые по умолчанию имеют следующие значения: 0, 1, 2, 3, 4, 5, 6. Первому присваивается значение 0, и каждому последующему – на 1 больше предыдущего.

Если не устраивают значения по умолчанию, то перечислимые константы могут быть инициализированы произвольными целыми константами или константными выражениями

enum number {a=54,b,c=60,d=c+5}; // b=55, d=65

Перечислимая константа может быть объявлена анонимно (без тега):

enum {off,on} signal;
signal=on;

Назад

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *