Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді на питання по мові С++по лекціям.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
265.22 Кб
Скачать

П’ять видів змінних

  1. Спеціфікатори і класифікатори.

Деякі ключові слова С++ називаються спеціфікаторами класу пам’яті та сv- спеціфікаторами, є носіями додаткової інформації про збереження. Надамо список спеціфікаторів класу пам’яті:

auto, regicter, static, extern, mulable

В одній об’яві можна застосовувати не більш одного з них.

Існують наступні cv-спеціфікатори:

const, volatile

Абривиатура cv визначає const і volatile. Спеціфікатор const вказує, що змінна, будучи один раз ініційована , не може бути змінена програмою.

Ключове слово volatile вказує, що значення у комірки пам’яті може бути змінено. Призначення цього ключового слова слугує для оптимізації можливостей компілятора.

За допомогою спеціфікатора mulable можна вказати, що деякий елемент структури (або класу) можна бути змінений, також коли змінна структури (або класу) була об’явлена зі спеціфікатором const.

  1. Додаткові відомості про спеціфікатор const.

Cпеціфікатор const привносить невеликі зміни в класи пам’яті, що використовується за замовчуванням. У той час як глобальна змінна за замовчуванням має зовнішнє зв’язування. Глобальна змінна зі спеціфікатором const за замовчуванням має внутрішнє зв’язування. Глобальне визначення const обробляється так, як зі спеціфікатором static:

сonst int fingers = 10; //як і static const int fingers

int main (void)

Щоб об’явити константу у всіх файлах, застосовують ключове слово extern. Значення зі спеціфікатором extern const можна ініціалізувати. Це потрібно зробити, оскільки const дані потребують ініціалізації. Константа може бути використовувана тільки у час виконання блоку.

  1. Функції і зв’язування.

 С++ не дозволяє об’явити одну функцію всередині іншої. За замовчуванням функції володіють зовнішнім зв’язуванням у тому смислу, що вони можуть застосовуватися різними файлами.Фактично можна у прототипі функції застосувати ключове слово extern для вказывки, що дана функцыя визначена в ыншому файлы, але це не обов’язково. Крім того, можна обмежити область видимості функції одним файлом, назначивши для неї внутрішнє зв’язування за допомогою ключового слова static. Це ключове слово застосовано до прототипу і до визначення функції:

static int private (double x);

static int private (double x);

{

}

У результаті функція доступна тільки у межах даного файлу. Таким чином, теж саме ім’я можна застосовувати для деякій функції в іншому файлі. Як і у випадку зі змінними, у файлі, який містить статистичну об’яву, статистична функція перекриває зовнішнє визначення.

Таким чином, файл, що містить статистичну об’яву функції, буде використовувати цю версію функції даже при наявності зовнішньої об’яви функції з таким же ім’ям.

У С++ «правило унікальності об’яв» говорить, що кожна програма повина мати тільки одне визначення кожної функції, крім вбудованих. Для функцій зі зовнішнім зв’язуванням це визначає, що тільки один файл багатофайлової програми може містити об’яву функції.

Вбудовані функції є виключення із цього правилу. Вони допускають розміщення об’яв у заготовочному файлі. Таким чином, кожний файл, застосовуючий заголовочний файл буде мати об’яву вбудованої функції. Однак, мова С++ потребує, щоб усі об’яви вбудованих функцій були одиничні.