
- •Як описуються цілі числа?
- •Порядкове читання вводу.
- •Що робить функція-член get ()?
- •Клас string.
- •Створення структури.
- •Що робить оператор enum?
- •Як робиться перерахування значень?
- •1. Змінна і змінна показника.
- •Копіювання рядка із масиву.
- •Використання операцій new та delete.
- •13. Отримання простору пам’яті.
- •Комбіновані операції присвоювання
- •Вирази відношень
- •Аналіз умови циклу:
- •Логічні оператори.
- •Простий файловий ввід-вивід символьної інформації.
- •Деякі основні факти, що використовують cout у консольному виводі.
- •Файловий ввід.
- •Як вказати діапазон елементів у масиві?
- •Як зробити передачу адреси замість передачі самої структури?
- •Використання посилальних аргументів.
- •Аргументи, що визначаємо за замовчуванням.
- •Перевантаження функції.
- •Моделі пам’яті і простір імен - Окрема компіляція програм
- •Директива #include.
- •Об’ява структур.
- •Довгочасність існування області зберігання, області видимості та компоновки.
- •Область видимості і зв’язування.
- •Автоматична довгочасність збереження.
- •Автоматичні змінні та стек.
- •Регістрові змінні.
- •П’ять видів змінних
- •Мовне зв’язування, котре дотикається функції.
П’ять видів змінних
Спеціфікатори і класифікатори.
Деякі ключові слова С++ називаються спеціфікаторами класу пам’яті та сv- спеціфікаторами, є носіями додаткової інформації про збереження. Надамо список спеціфікаторів класу пам’яті:
auto, regicter, static, extern, mulable
В одній об’яві можна застосовувати не більш одного з них.
Існують наступні cv-спеціфікатори:
const, volatile
Абривиатура cv визначає const і volatile. Спеціфікатор const вказує, що змінна, будучи один раз ініційована , не може бути змінена програмою.
Ключове слово volatile вказує, що значення у комірки пам’яті може бути змінено. Призначення цього ключового слова слугує для оптимізації можливостей компілятора.
За допомогою спеціфікатора mulable можна вказати, що деякий елемент структури (або класу) можна бути змінений, також коли змінна структури (або класу) була об’явлена зі спеціфікатором const.
Додаткові відомості про спеціфікатор const.
Cпеціфікатор const привносить невеликі зміни в класи пам’яті, що використовується за замовчуванням. У той час як глобальна змінна за замовчуванням має зовнішнє зв’язування. Глобальна змінна зі спеціфікатором const за замовчуванням має внутрішнє зв’язування. Глобальне визначення const обробляється так, як зі спеціфікатором static:
сonst int fingers = 10; //як і static const int fingers
int main (void)
…
Щоб об’явити константу у всіх файлах, застосовують ключове слово extern. Значення зі спеціфікатором extern const можна ініціалізувати. Це потрібно зробити, оскільки const дані потребують ініціалізації. Константа може бути використовувана тільки у час виконання блоку.
Функції і зв’язування.
С++ не дозволяє об’явити одну функцію всередині іншої. За замовчуванням функції володіють зовнішнім зв’язуванням у тому смислу, що вони можуть застосовуватися різними файлами.Фактично можна у прототипі функції застосувати ключове слово extern для вказывки, що дана функцыя визначена в ыншому файлы, але це не обов’язково. Крім того, можна обмежити область видимості функції одним файлом, назначивши для неї внутрішнє зв’язування за допомогою ключового слова static. Це ключове слово застосовано до прототипу і до визначення функції:
static int private (double x);
…
static int private (double x);
{
…
}
У результаті функція доступна тільки у межах даного файлу. Таким чином, теж саме ім’я можна застосовувати для деякій функції в іншому файлі. Як і у випадку зі змінними, у файлі, який містить статистичну об’яву, статистична функція перекриває зовнішнє визначення.
Таким чином, файл, що містить статистичну об’яву функції, буде використовувати цю версію функції даже при наявності зовнішньої об’яви функції з таким же ім’ям.
У С++ «правило унікальності об’яв» говорить, що кожна програма повина мати тільки одне визначення кожної функції, крім вбудованих. Для функцій зі зовнішнім зв’язуванням це визначає, що тільки один файл багатофайлової програми може містити об’яву функції.
Вбудовані функції є виключення із цього правилу. Вони допускають розміщення об’яв у заготовочному файлі. Таким чином, кожний файл, застосовуючий заголовочний файл буде мати об’яву вбудованої функції. Однак, мова С++ потребує, щоб усі об’яви вбудованих функцій були одиничні.