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

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

При сравнении констант в языках программирования C и 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 в использовании.

В использовании слова 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 с наименованиями семи дней недели, каждый из которых соответствует целочисленной константе. Перечислимые идентификаторы — константы, по умолчанию имеющие значения 0, 1, 2, 3, 4, 5, 6. Значение 0 присваивается первому, а каждый последующий получает значение на единицу больше предыдущего. Иногда значения по умолчанию не удовлетворяют условиям определённой задачи, тогда перечислимые константы инициализируются с помощью случайных целочисленных констант или константных сочетаний:

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

Также возможно объявление целой константы без тега, то есть, анонимно:

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

Нет комментариев

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