- •Вирази і оператори.
- •Логічні оператори.
- •Оператор розгалуження.
- •Оператор вибору.
- •Арифметичні операції. Пріоритет виконання.
- •Вказівники константи.
- •Вказівники змінні.
- •Функції.
- •Передача аргументів у функцію.
- •Значення, яке повертає функція.
- •Функція для роботи з файлами.
- •Рекурсивні функції.
- •Блоки і область видимості змінних.
- •Оператори повторення.
- •Структури. Вкладені структури.
- •Створення класів.
- •Управління виконанням програм.
- •Одновимірні масиви даних.
- •Двовимірні масиви даних.
- •Створення масивів з використанням вказівників.
- •Алгоритми сортування масивів.
- •Рядки і операції над ними.
- •Функції введення-виведення.
- •Конструктори, деструктори.
- •Класи. Успадкування.
- •Класи. Поліморфізм.
- •Класи. Інкапсуляція.
- •Вказівник this.
- •Перевантаження операцій та операторів.
- •Поліморфізм і віртуальні функції.
- •Стандартний клас string.
- •Стандартний клас queue.
- •Стандартний клас vector.
- •Стандартний клас list.
- •Стандартний клас stack.
- •Створення і використання шаблонів функцій та класів.
- •Стандартна бібліотека шаблонів (stl)
- •Доступність методів класу.
- •Конструктор та деструктор класів.
- •Наслідування класів.
- •Використання просторів імен.
- •Шаблони функцій.
- •Шаблони класів.
- •Алгоритми стандартної бібліотеки stl.
- •Динамічні структури типу стек.
- •Динамічні структури типу однонаправлений список.
- •Динамічні структури типу двонаправлений список.
- •Сортування масивів із використанням вказівників.
Конструктори, деструктори.
Конструктор являє собою спеціальну функцію , яку C + + автоматично викликає кожного разу при створенні об'єкта. Звичайне призначення конструктора полягає в ініціалізації елементів даних об'єкта . Конструктор має таке ж ім'я , як і клас . Наприклад , клас з ім'ям file використовує конструктор з ім'ям file . Ви визначаєте конструктор всередині своєї програми так само, як і будь-який метод класу. Єдина відмінність полягає в тому , що конструктор не має значення, що повертається . Коли ви пізніше визначатимете об'єкт , ви можете передавати параметри конструктору , як показано нижче: class_name object ( valuel , value2 , value3 )
C + + дозволяє вам перевантажувати конструктори і дозволяє використовувати значення за замовчуванням для параметрів.
Деструктор являє собою функцію, яку C + + автоматично запускає, коли він або ваша програма знищує об'єкт. Деструктор має таке ж ім'я, як і клас об'єкта; однак ви перед ім'ям деструктора ставиться символ тильда (~), наприклад ~ employee. У своїй програмі ви визначаєте деструктор точно так само, як і будь-який інший метод класу.
Класи. Успадкування.
В основі механізму, що дозволяє створювати ієрархії класів, лежить принцип успадкування. Клас, що лежить
в основі ієрархії, називається базовим. Класи, що успадковують властивості базового класу, називаються
похідними. Похідні класи, у свою чергу, можуть бути базовими стосовно своїх спадкоємців, що в результаті
приводить до ланцюжка успадкування. Процес утворення похідного класу на основі базового називається
виводом класу. З одного базового класу можна вивести декілька похідних. Крім того, похідний клас може бути
спадкоємцем декількох базових класів.
Успадкування буває одиночним і множинним. При одиночному успадкуванні в кожного похідного класу є
лише один базовий клас, а при множинному — декілька.
Розглянемо механізм успадкування ближче.
Усі члени базового класу автоматично стають членами похідного. Керуючись оголошенням похідного класу,
компілятор ніби збирає його з різних частин — спочатку він бере усі властивості базового класу, а потім додає
до них нові функціональні можливості похідного.
Для цього використовується наступна синтаксична конструкція.
class ім'я_похідного_класу:специфікатор_доступу ім'я_базового_класу
{
// тіло класу
};
Хоча всі члени базового класу автоматично стають членами похідного класу, однак доступ до цих членів
визначається видом успадкування. У залежності від специфікатора доступу, зазначеного при оголошенні
похідного класу, розрізняють відкрите, закрите і захищене успадкування. За замовчуванням використовується
закрите успадкування (специфікатор private).
Класи. Поліморфізм.
Поліморфі́зм — концепція в програмуванні, відповідно до якої використовується спільний інтерфейс для обробки даних різних спеціалізованих типів.
На противагу поліморфізму, концепція мономорфізму вимагає однозначного зіставлення.
В контексті об'єктно-орієнтованого програмування, найпоширенішим різновидом поліморфізму є здатність екземплярів підкласу грати роль об'єктів батьківського класу, завдяки чому екземпляри підкласу можна використовувати там, де використовуються екземпляри батьківського класу.[1]
Прикладом поліморфізму в більшості мов програмування є бінарний оператор +, який може мати своїми аргументами дані різного типу: цілі числа, числа з плаваючою комою, комплексні числа та навіть рядки:
1 + 2 - операнди цілого типу, результат цілого типу.
1.2 + 1.0e3 - операнди дійсних типів, результат дійсного типу
"Андрій" + "Ольга" - операнди рядки, результат - конкатенований рядок
Поліформізм реалізується в багатьох мовах програмування за домогою перевантаження функцій. Поліморфізм — один з трьох найважливіших механізмів об'єктно-орієнтованого програмування. Поліморфізм дозволяє писати більш абстрактні програми і зменшити коефіцієнт повторного використання коду.
Спільні властивості об'єктів об'єднуються в систему, яку можуть називати по різному: інтерфейс, клас. Спільність має зовнішнє і внутрішнє вираження. Зовнішня спільність проявляється як однаковий набір методів з однаковими іменами і сигнатурами (типами аргументів і результатів).
Внутрішня спільність є однакова функціональність методів. Її можна описати інтуїтивно виразити у вигляді строгих законів, правил, яким повинні підкорятись методи. Можливість приписувати різну функціональність одному методу (функції, операції) називається перевантаженням методу (функції, операції).
