Оголошення

В мові С++ кожне ім'я (ідентифікатор) слід оголосити перш, ніж воно буде використовуватися в програмі. Це означає, що потрібно вказати його тип, щоб компілятор знав, до якого виду об'єктів має відношення це ім'я. Нижче приведена послідовність інструкцій, які ілюструють всю різноманітність можливих оголошень в програмах:

 

char ch;

int count = 1;

char* name = "Козак";

struct complex {float re, im;};

complex cvar;

extern complex sqrt(complex);

extern int error_number;

typedef complex point;

float real(complex* p) {return p->re;};

const double pi = 3.1415926535897932385;

struct user;

template<class T> abs(T а) {return a<0 ? -a : а;}

enum beer{Carlsberg, Tuborg, Thor};

 

З цих прикладів видно, що роль оголошень не зводиться лише до прив'язки типу до імені. Більшість вказаних оголошень одночасно є визначеннями, тобто вони створюють об'єкт, на який посилається ім'я.

Для оголошених вище імен ch, count, name та cvar таким об'єктом є елемент пам'яті відповідного розміру. Цей елемент пам'яті буде використовуватися як змінна, і говорять, що за допомогою оголошення для неї відведена пам'ять.

Для імені real подібним об'єктом буде функціяіз указаними в оголошенні типами аргументів, типом значення, яке вона повертає, і заданою реалізацією її алгоритму у фігурних дужках.

Для константи pi об'єктом буде число 3.1415926535897932385.

Для імені complex об'єктом буде новий тип.

Для імені point об'єктом є тип complex, тому point стає синонімом complex.

У програмі на мові С++ повинно бути тільки одне визначення кожного імені, але оголошень може бути багато. Проте всі оголошення повинні бути узгоджені по типу об'єкту, що вводиться в них.