logo
ООП для Заоч / Пинчук Лозовская Программир на С

2.3. Ідентифікатори

Ідентифікатор являє собою ім'я деякої сутності, яка використовується в програмі. Ідентифікаторами забезпечуються об'єкти, функції, константи, типи, мітки. Кожна з мов програмування має свої правила вибору ідентифікаторів. За правилами мови С++ ідентифікатор є послідовність латинських літер, цифр і деяких спеціальних символів, причому послідовність повинна починатися з літери або символу підкреслення. Довжина ідентифікатора довільна, але значущими є тільки перші 32 символи. Важливо відзначити, що в С/С++ при розрізненні ідентифікаторів ураховується регістр. Це означає, що такі імена як Alfa і alfa вважаються різними. Ніякий ідентифікатор не повинен збігатися із ключовим словом мови. Ключові слова мають спеціальні значення для компілятора. Вживання ключових слів строго регламентовано і ці слова не можуть використовуватися інакше. Список ключових слів мови С++ наведено нижче.

asm auto break case catch char class const default delete do

double else enum extern float

friend goto if inline int long new operator protected public register return short signed sizeof static

switch template this throw try

typedef union unsigned void volatile while continue for private struct virtual

Ідентифікатор об'єкта має свій набір атрибутів:

1) тип;

2) сфера дії;

3) область видимості;

4) клас пам'яті;

5) простір імен.

Сферою дії ідентифікатора є область програми, у межах якої зберігається зв'язок між ідентифікатором і відповідним об'єктом. Категоріями сфери дії є: блок, функція, клас, файл, програма.

Областю видимості ідентифікатора є область програми, з якої можливий нормальний доступ за його допомогою до відповідного об'єкта. Категорії видимості: блок, функція, клас, файл.

Ім'я об'єкта в зовнішньому блоці може "екрануватися" ім'ям об'єкта внутрішнього блоку. Такий об’єкт у межах внутрішнього блоку є недоступним. При виході із внутрішнього блоку доступ відновлюється. Для доступу із внутрішнього блоку до однойменного об'єкту зовнішнього блоку можна використати операцію дозволу доступу із символом "::".

Клас пам'яті ідентифікатора визначає спосіб розміщення об'єкта в пам'яті. Категорії класу пам'яті: регістри, сегмент даних, стек, купа.

Простором імен є та частина програми, у межах якого будь-який ідентифікатор повинен бути унікальним. Наприклад: для міток простором імен є функція, для імен компонентів класу - клас, для змінної - сфера дії ідентифікатора.

Нижче наведений приклад, що ілюструє поняття області видимості, сфери дії й простору імен. У програмі формуються 4 простори імен: одне глобальне і ще 3 вкладених. У кожному з них оголошується змінна з ім'ям R. Незважаючи на збіг імен, програма працює нормально.

// Приклад 1

#include <syst.h>

int R=0; // змінна в глобальному просторі