- •1. Історія розвитку мов програмування.
- •2. Структурне та об'єктно - орієнтоване програмування.
- •Процедурне програмування
- •Тема: Об'єктно — орієнтований підхід у програмуванні.
- •Суть об'єктно - орієнтовного підходу до програмування.
- •Особливості та переваги об'єктно - орієнтованого програмування.
- •Базові поняття та терміни
- •Наслідування, інкапсуляція та поліморфізм.
- •Заняття №3.
- •Написання програми.
- •2. Базові типи та описи даних.
- •Цілі числа
- •1. Основні поняття припроцесорної обробки. Компонування декількох файлів в одну програму
- •2. Припроцесорні змінні
- •3. Макровизначення (макроси).
- •4. Умовна компіляція
- •Заняття №5 Тема: Специфікація, об'єктів на основі абстрагування
- •1. Поняття класу об'єктів.
- •Формат класу.
- •Звернення до членів класу
- •Заняття №6 Тема: Ідентифікація об'єктів.
- •1. Ідентифікація назвою.
- •2. Область доступу ідентифікаторів
- •3. Опис об'єкту: інтерфейс і реалізація.
- •Тип адрес.
- •5. Ідентифікація вказівником.
- •6. Посилання
- •Віртуальні функції.
- •„Дружні" функції.
- •Тема: Інтерпретація об'єктів.
- •1. Поліморфізм
- •Тема: Інтерпретація об'єктів (заняття 2)
- •Наслідування властивостей.
- •Множинне наслідування.
- •1. Поняття „час життя" об'єкта та „область видимості".
- •Область видимості імен.
- •Тема: Динамічні структури об'єктів
- •1. Зв'язана організація пам'яті.
- •2. Асоціативні структури.
- •3. Списки. Черги. Рекурсивні структури. Набори. Дерева.
- •Тема: Процеси в об'єктах. Інкапсуляція
- •Логічний паралелізм. Схема сопрограм
- •Список використаної літератури
2. Припроцесорні змінні
Використання файлів, що вмикаються
У мові С++ можна помістити оголошення класів і функцій в окремий файл і включати цей файл на початку інших файлів з допомогою оператора #include.
#include "Book.h"
……………………
Book b;
Фактично оператор #include підставляє вміст файлу Book.h в існуючий
файл, перед тим як відбувається компіляція. Ця підстановка відбувається під час першого проходу компілятора по програмі - припроцесора. Файл Book.h називається файлом заголовком.
В такий же файл заголовок можна включати прототип функції і включати його в інші файли, туди де функція використовується.
Таким чином, текст програми на мові С++ поміщається в файли двох типів - файли заголовків і файли програм. Ім'я файлу, зазвичай, складається із імені класу. Заголовні файли звичайно мають розширення *.h (іноді, особливо в системі Unix, “.hh” або “.Н”) і можуть містити:
визначення типів, констант, вбудованих функцій, шаблонів, переліків;
оголошення функцій, даних, імен, шаблонів;
простори імен;
директиви припроцесора;
коментарі.
У заголовному файлі не повинно бути визначень функцій і даних.
При вказівці заголовних файлів стандартної бібліотеки розширення *.h можна опускати. Для кожного файлу бібліотеки Із з ім'ям <name.h> є відповідний файл бібліотеки С++ <c name>.
Об'єднувати декілька класів в один файл доречно тільки тоді коли вони тісно зв'язані між собою і один без одного не використовуються.
Припроцесор
В мові С++ існують декілька операторів, що починаються з знаку #: #include, #define, #undef, #ifdef, #else, #if, #pragma.
Усі вони обробляються так званим припроцесором.
Іноді припроцесор називають макропроцесором, оскільки в ньому визначаються макроси. Директиви припроцесора починаються з знаку #, який повинен бути першим символом в стрічці після пробілів.
3. Макровизначення (макроси).
Директива #define
Директива #define визначає підстановку в тексті програми. Вона використовується для визначення:
Cимволічних констант. Формат визначення символічної константи: #define ім'я текст_підстановки /* Всі входження імені замінюються на текст підстановки */
Макросів, які виглядають як функції, але реалізуються підстановкою їх тексту в текст програми. Формат визначення макросу:
#define ім'я (параметри) текст_підстановки
Cимволів, керівників умовною компіляцією. Вони використовуються разом з директивами #ifdef і #ifndef.
Формат:
#define ім'я
Приклади:
#define М 1000
#define Vasia "Василь Іванович" #define МАХ (a, b) ((х)>(у)?(х):(у))
#define__cplusplus
Параметри використовуються при макропідстановці, наприклад, якщо в тексті програми використовується виклик макросу у = МАХ (sum1, sum2); , він буде замінений
у=((sum1 )>(sum2)?(sum1) : (sum2));
Використання макросів і символічних констант в програмах слід уникати.
Директива #undef
Директива #undef відміняє визначення імені, після неї ім'я перестає бути визначеним.
У припроцесора є декілька макроімен, які він визначає сам, їх називають попередньо визначеними іменами. У різних компіляторів набір цих імен різний, але два визначенні завжди: _FILE_ і _LINE_. Значенням макроімені _FILE_ є ім'я поточного вихідного файлу, взятого в лапки. Значенням _LINE_ - номер поточної стрічки в файлі.
