Константы: использование const для задания констант

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

Константы в С++ аналогичны константам в Си. Для представления константы в Си использовалась только директива препроцессора #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 подчиняются тем же правилам, что и переменные. Можно создавать константы с различной областью видимости.

Однако не любое использование #define можно исключить с помощью const. Например, нельзя объявить массив с размером, заданным через const.

 
 
const size=3;
int a;

Такой код работать не будет.

Перечислимый тип

С помощью ключевого слова 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;

Оставьте комментарий

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

Прокрутить вверх