- •Як описуються цілі числа?
- •Порядкове читання вводу.
- •Що робить функція-член get ()?
- •Клас string.
- •Створення структури.
- •Що робить оператор enum?
- •Як робиться перерахування значень?
- •1. Змінна і змінна показника.
- •Копіювання рядка із масиву.
- •Використання операцій new та delete.
- •13. Отримання простору пам’яті.
- •Комбіновані операції присвоювання
- •Вирази відношень
- •Аналіз умови циклу:
- •Логічні оператори.
- •Простий файловий ввід-вивід символьної інформації.
- •Деякі основні факти, що використовують cout у консольному виводі.
- •Файловий ввід.
- •Як вказати діапазон елементів у масиві?
- •Як зробити передачу адреси замість передачі самої структури?
- •Використання посилальних аргументів.
- •Аргументи, що визначаємо за замовчуванням.
- •Перевантаження функції.
- •Моделі пам’яті і простір імен - Окрема компіляція програм
- •Директива #include.
- •Об’ява структур.
- •Довгочасність існування області зберігання, області видимості та компоновки.
- •Область видимості і зв’язування.
- •Автоматична довгочасність збереження.
- •Автоматичні змінні та стек.
- •Регістрові змінні.
- •П’ять видів змінних
- •Мовне зв’язування, котре дотикається функції.
Моделі пам’яті і простір імен - Окрема компіляція програм
Мова С++ допускає розміщення функцій програми в окремих файлах. Файли можна компілювати окремо, а потім зв’язувати їх з кінцевим продуктом – програмою, що виконується. Компілятор не тільки компілює програми, але і керує роботою компанувальника. При зміні тільки одного файлу, можна перекомпілювати тільки цей файл і потім зв’язати його з раніше з компіюємимі версіями інших файлів. Цей засіб полегшує роботу з великими програмами. У системах Unix та Linux існує програма make, яка зберігає відомості про всі файли, від котрих залежить програма, і про час їх останньої модифікації. Після запуску make виявляються зміни в вихідних файлах з моменту останній компіляції, а потім пропонуються відповідні дії, які потрібні для відтворення програми. Інтегровані середовища розробки (IDE) borland C++, Microsoft Visual C++ і Metrowerks CodeWarror пропонують аналогічні засоби, доступ до яких здійснюється за допомогою меню Project (Проект).
Директива #include.
Для можливості поділення файлів на окремі була створена директива #include. Замість того, щоб розміщати об’яву структур у кожній файл, їх можна розмістити у заготовочному файлі, а потім включити цій заголовочний файл в кожний файл вихідним кодом. Таким чином, щоб змінити об’яву структурі, потрібно зробити це один раз у заготовочному файлі. Крім того, у заголовочний файл можна розмістити прототипи функцій. Таким чином, вихідну програму можна розбити на три частини:
Заголовочний файл, який містить об’яву структури і прототипи функцій, що використовують ці структури.
Файл з вихідним кодом, що містить код функцій, які працюють зі структурами.
Файл з вихідним кодом, що містить код, який здійснює виклики цій функцій.
Така стратегія може бути успішно застосована для організації програм. Така організація програми відповідає принципам об’єкно-оріентованого програмування (ООП). Перший файл (заголовочний), містить визначення користувацьких типів. Другий файл містить код функції для управління типами, що визначені користувачем. У сукупності обидва файла створюють пакет, котрій можна використовувати у різних програмах.
У заголовочний файл не потрібно застосовувати визначення функцій або об’яву змінних. У простих програмах це може працювати добре, але найчастіше слугує джерелом проблем. У заголовочному звичайно міститься наступне:
Прототипи функцій.
Символічні константи, що визначені за допомогою директиви #define або const.
Об’ява структур.
Об’ява класів.
Об’ява шаблонів.
Вбудовані функції.
Об’ява структур.
Об’ява структур в заготовочному файлі не створює змінних, а тільки вказує компілятору, як створювати структурну змінну, коли вона об’явлена у файлі вихідного коду. Теж саме об’ява шаблону – це не код, який потрібно копіювати, а інструкції для компілятора, що вказують, як генерувати визначення функцій, щоб вони відповідали викликам функцій, які зустрічаються у вихідному коді. Дані, що об’явлені зі спеціфікатором const, і вбудовані функції мають спеціальні властивості зв’язування, котрі дозволяють розміщувати їх у заготовочних файлах.
В інтегрованих середовищах розробки програм не треба включати заголовочні файли у список проекту і не використовуйте директиву #include для включення одних файлів вихідного коду в інші файли вихідного коду.
