Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
То что меняю(2).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
308.22 Кб
Скачать

5. Класи

5.1 Інтерфейс і реалізація в класі

Інтерфейс - семантична і синтаксична конструкція в коді програми, використовувана для специфікування послуг, наданих класом або компонентом.

Інтерфейс визначає межу взаємодії між класами або компонентами, специфікуючи певну абстракцію, яку здійснює реалізуюча сторона. На відміну від концепції інтерфейсів в багатьох інших областях, інтерфейс в ООП є строго формалізованим елементом об'єктно-орієнтованої мови і в якості семантичної конструкції широко використовується кодом програми.

Інтерфейси дозволяють налагодити множинне успадкування об'єктів.

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

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

Послідовність символів :: називається оператором області видимості, він показує приналежність функції класу, вказує компілятору, що дана версія функції належить класу. Іншими словами, функція знаходиться в області видимості класу.

Приклад класу:

class rozklad_potyagiv //Клас "Розклад потягiв"

{

public: //Оголошення публiчного доступу до наведених нижче змiнних та методiв

string punkt_priznachennya; //Оголошення змiнної "Пункт призначення"

string nomer_potyagy; //Оголошення змiнної "Номер потягу"

string chas_vidpravlenya; //Оголошення змiнної "Час вiдправлення"

rozklad_potyagiv(); //Конструктор

void vvod(); //Оглошення методу класу - "Введення даних"

void vuvod(); //Оглошення методу класу - "Виведення даних"

void sort_punkt_priznachnya(rozklad_potyagiv *china,int n); //Оголошення методу сортування

void vuvod_po_poisky(rozklad_potyagiv *china,int n); //Оголошення методу пошуку по часу

~rozklad_potyagiv();

};

5.2 Конструктори і деструктори

Конструктор викликається щоразу, коли створюється об'єкт даного типу; деструктор — при знищенні. При перетвореннях типів, присвоєнні, передачі параметра теж викликаються конструктори і при необхідності деструктори. Конструктор викликається автоматично. Конструктор – це метод класу, який має ім’я класу, він ініціалізує об’єкти класу. Деструктор руйнує об’єкти, звільняє пам'ять. Він також має ім’я класу, але з символом на початку «~». Конструктор і деструктор протилежні один від одного і завжди оголошуються в розділі public. При оголошення конструктора та деструктора не вказується тип даних, вони не повертають значення. В класі можна створювати декілька конструкторів і вони можуть бути з параметрами, деструктор в класі може бути тільки один.

Приклад:

class rozklad_potyagiv //Клас "Розклад потягiв"

{

public: //Оголошення публiчного доступу до наведених нижче змiнних та методiв

string punkt_priznachennya; //Оголошення змiнної "Пункт призначення"

string nomer_potyagy; //Оголошення змiнної "Номер потягу"

rozklad_potyagiv(); //Конструктор

~rozklad_potyagiv(); //Деструктор

};

rozklad_potyagiv::rozklad_potyagiv() //Конструктор

{

punkt_priznachennya=nomer_potyagy="\nПусто";//Надається змiнним значення "Пусто"}

rozklad_potyagiv::~rozklad_potyagiv() //Деструктор

{

//Працює деструктор

}

6. Потоки введення/виведення С++

Введення / виведення на найнижчому рівні інтерпретується як передача послідовності байтів між об'єктами. Ця послідовність байтів називається потоком. На цьому рівні поняття типу даних відсутня. У мові С ++ управління потоками здійснюється за допомогою функцій бібліотеки вводу / виводу, успадкованої від С і оголошеної в заголовному файлі «iostream», або за допомогою операторів потоку введення / виведення. До переваг першого способу відноситься можливість більш гнучкого управління форматуванням і його повна сумісність з С. Використовуючи оператори потоку введення / виводу, можна не замислюватися про форматах виведення інформації, якщо це не має принципового значення. Крім того, цей метод дозволяє перевизначити форму виводу для будь-якого класу.

Функції введення/виведення: cin>> //Введення;

cout<< //Виведення;

printf ( ) //Виведення;

scanf() //Введення.

Для файлів:

fprintf ( ) //Виведення;

fscanf ( ) //Введення.