Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_OPAM_vidpovidi_teoretichni.doc
Скачиваний:
4
Добавлен:
22.09.2019
Размер:
214.53 Кб
Скачать
  1. Множинне наслідування

Клас може бути похідним не лише від одного базового класу. А й від кількох.

Створення класу на основі двох чи більше класів називається множинним наслідуванням.

Синтаксис опису множинного наслідування схожий на синтаксис простого наслідування. Наприклад:

class А

{ }; class B { }; class C : public A, public B

{ };

Всі базові класи перераховані після символу двокрапки ":" в рядочку опису похідного класу та розділені комами.

Проте, множинне наслідування використовується не часто, але може виявитися дуже корисним.

Класи VCL не підтримують множинне наслідування. Проте ви можете його використовувати в будь-яких інших класах, створених для використання в додатках C++Builder.

  1. Віртуальні функції

Віртуальний метод або віртуальна функція — метод об'єкта в об'єктно-орієнтованому програмуванні, різний для базового класу і класу нащадка.

Концепція віртуальної функції вирішує наступну проблему:

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

Відмінність між віртуальністю і невіртуальністю функцій вирішує цю невизначеність. Якщо функція описана як віртуальна у базовому класі, тоді буде викликана функція із класу нащадка (якщо така існує). Якщо вона не віртуальна, тоді — із батьківського класу.

  1. Чисто віртуальні функції

Чисті віртуальні функції (pure virtual functions) надають механізм для збереження функції у вигляді невизначеною і абстрактною. Клас, що містить таку абстрактну функцію, не може бути породжений безпосередньо, а неабстрактний клас-нащадок має визначити її. Синтаксис чистої віртуальної функції в Сі + + виглядає так: virtual void fn () = 0.

  1. Абстрактні класи

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

  1. Файли в С++

Файл - это единица хранения данных, которые обычно хранятся на винчестерах (жестких дисках). Мы будем рассматривать как последовательный, так и произвольный доступ к файлу. Давайте теперь рассмотрим работу с файлами В языке Си любой файл рассматривается как поток байтов. Концом любого файла является спец. символ. При открытии файла, ему ставится определенный поток и возвращается указатель на структуру FILE (так же возвращаемое значение именуют - дескриптор файла). Т.е. доступ к элементам файла будет происходить с помощью этого указателя. 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]