- •Оператор безумовного переходу
- •Ініціалізація масивів.
- •Символьні масиви. Рядковий тип.
- •Одновимірні масиви
- •Багатовимірні масиви
- •Функції
- •Рекурсія
- •Вказівний тип
- •Динамічний розподіл памяті
- •Структурний тип.
- •Об’єднуючий тип
- •Директиви препроцесора
- •Коментарії
- •Вказівник this
- •Перевантаження функцій
- •Перевантаження конструкторів
- •Стандартні значення параметрів функцій
- •Перевантаження унарних операторів
- •Перевантаження бінарних операторів
- •Дружні операторні функції
- •Наслідування
- •Захищене наслідування
- •Відкрите наслідування
- •Закрите наслідування
- •Множинне наслідування
- •Віртуальні функції
- •Чисто віртуальні функції
- •Абстрактні класи
- •Шаблони
- •Статичні елементи класу
- •Включення файлів
- •Потокова система вводу виводу
- •Маніпулятори введення-виведення
- •Поняття клас
- •Поняття об’єкт
- •Конструктори
- •Відкриті та закриті поля класу
- •Захищені поля класу
- •Дружні функції
- •Дружні класи
- •Масиви об’єктів
- •Ініціалізовані масиви об’єктів 44. Неініціалізовані масиви об’єктів
- •Вказівники на об’єкти
- •Посилання
- •Множини
- •Процедури
- •Функції
- •Рекурсивні функції
- •Оператор приєднання
- •Текстові файли
- •Модулі.
- •Вказівники.
- •Операції над вказівниками.
- •Списки.
- •Вставка елемента в список.
- •Видалення елемента із списку.
- •Динамічні рядки символів.
- •Пошук елемента списку
- •Поняття черги та стеку
- •Службові слова мови с
- •Типи даних
- •Змінні та константи
- •Оператори мови с
- •Ввід та вивід на консоль
- •Модифікатори
- •Мультиплікативні операції
- •Адитивні операції
- •Умовний оператор
- •Оператор вибору
- •Цикл з параметром
- •Цикл з передумовою
Множинне наслідування
Клас може бути похідним не лише від одного базового класу. А й від кількох.
Створення класу на основі двох чи більше класів називається множинним наслідуванням.
Синтаксис опису множинного наслідування схожий на синтаксис простого наслідування. Наприклад:
|
class А { }; class B { }; class C : public A, public B { }; |
Всі базові класи перераховані після символу двокрапки ":" в рядочку опису похідного класу та розділені комами.
Проте, множинне наслідування використовується не часто, але може виявитися дуже корисним.
Класи VCL не підтримують множинне наслідування. Проте ви можете його використовувати в будь-яких інших класах, створених для використання в додатках C++Builder.
Віртуальні функції
Віртуальний метод або віртуальна функція — метод об'єкта в об'єктно-орієнтованому програмуванні, різний для базового класу і класу нащадка.
Концепція віртуальної функції вирішує наступну проблему:
У ООП, якщо клас-нащадок наслідується від базового класу, об'єкт екземпляр класу-нащадку може використовуватись або як екземпляр батьківського класу (бути приведеним до батьківського класу), або як екземпляр класу-нащадка. Якщо у класі-нащадку є функції, що перекривають (мають таку ж сигнатуру) функції із батьківського класу, то поведінка при виклику таких методів (при використанні даного об'єкта як екземпляра батьківського класу) є невизначеною.
Відмінність між віртуальністю і невіртуальністю функцій вирішує цю невизначеність. Якщо функція описана як віртуальна у базовому класі, тоді буде викликана функція із класу нащадка (якщо така існує). Якщо вона не віртуальна, тоді — із батьківського класу.
Чисто віртуальні функції
Чисті віртуальні функції (pure virtual functions) надають механізм для збереження функції у вигляді невизначеною і абстрактною. Клас, що містить таку абстрактну функцію, не може бути породжений безпосередньо, а неабстрактний клас-нащадок має визначити її. Синтаксис чистої віртуальної функції в Сі + + виглядає так: virtual void fn () = 0.
Абстрактні класи
Абстрактним методом (описувач abstract) в Java називається метод, для якого задані параметри і тип значення, що повертається, але не тіло. Абстрактний метод визначається в класах-спадкоємцях. У C++ те ж саме називається чисто віртуальною функцією. Для того, щоб в класі можна було описувати абстрактні методи, сам клас теж повинен бути описаний як абстрактний. Об’єкти абстрактного класу створювати не можна.
Файли в С++
Файл - это единица хранения данных, которые обычно хранятся на винчестерах (жестких дисках). Мы будем рассматривать как последовательный, так и произвольный доступ к файлу. Давайте теперь рассмотрим работу с файлами В языке Си любой файл рассматривается как поток байтов. Концом любого файла является спец. символ. При открытии файла, ему ставится определенный поток и возвращается указатель на структуру FILE (так же возвращаемое значение именуют - дескриптор файла). Т.е. доступ к элементам файла будет происходить с помощью этого указателя.