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

Мова С++ допускає розміщення функцій програми в окремих файлах. Файли можна компілювати окремо, а потім зв’язувати їх з кінцевим продуктом – програмою, що виконується. Компілятор не тільки компілює програми, але і керує роботою компанувальника. При зміні тільки одного файлу, можна перекомпілювати тільки цей файл і потім зв’язати його з раніше з компіюємимі версіями інших файлів. Цей засіб полегшує роботу з великими програмами. У системах Unix та Linux існує програма make, яка зберігає відомості про всі файли, від котрих залежить програма, і про час їх останньої модифікації. Після запуску make виявляються зміни в вихідних файлах з моменту останній компіляції, а потім пропонуються відповідні дії, які потрібні для відтворення програми. Інтегровані середовища розробки (IDE) borland C++, Microsoft Visual C++ і Metrowerks CodeWarror пропонують аналогічні засоби, доступ до яких здійснюється за допомогою меню Project (Проект).

  1. Директива #include.

Для можливості поділення файлів на окремі була створена директива #include. Замість того, щоб розміщати об’яву структур у кожній файл, їх можна розмістити у заготовочному файлі, а потім включити цій заголовочний файл в кожний файл вихідним кодом. Таким чином, щоб змінити об’яву структурі, потрібно зробити це один раз у заготовочному файлі. Крім того, у заголовочний файл можна розмістити прототипи функцій. Таким чином, вихідну програму можна розбити на три частини:

Заголовочний файл, який містить об’яву структури і прототипи функцій, що використовують ці структури.

Файл з вихідним кодом, що містить код функцій, які працюють зі структурами.

Файл з вихідним кодом, що містить код, який здійснює виклики цій функцій.

Така стратегія може бути успішно застосована для організації програм. Така організація програми відповідає принципам об’єкно-оріентованого програмування (ООП). Перший файл (заголовочний), містить визначення користувацьких типів. Другий файл містить код функції для управління типами, що визначені користувачем. У сукупності обидва файла створюють пакет, котрій можна використовувати у різних програмах.

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

  • Прототипи функцій.

  • Символічні константи, що визначені за допомогою директиви #define або const.

  • Об’ява структур.

  • Об’ява класів.

  • Об’ява шаблонів.

  • Вбудовані функції.

  1. Об’ява структур.

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

В інтегрованих середовищах розробки програм не треба включати заголовочні файли у список проекту і не використовуйте директиву #include для включення одних файлів вихідного коду в інші файли вихідного коду.