Уроки C++

#22 – Дружні класи в C++

#22 – Дружні класи в C++

За аналогією з дружніми функціями, в мові C++ існують також дружні класи. За урок ви навчитесь створювати та працювати з такими класами на практиці.

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

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


Завдяки дружньому властивості ми можемо вказати кілька класів, що будуть пов'язані між собою. Це дозволить брати дані через об'єкт одразу з кількох класів.


За рахунок цього ми можемо точно описати логіку для різних персонажів у грі або для вікон у додатку. Усі вони можуть бути записані в різних класах, але при цьому кожен зможе мати доступ один до одного.


Приклад створення дружнього класу:

class Auto;
class Motorcycle {
	friend class Auto;
private: 
	bool isStillWorking = true;
};

class Auto {
public:
	void CrashDTP(Auto &moto) {
		moto.isStillWorking = false;
		cout << "Motorcycle is currently not working!";
	}
};

З прикладу видно, що для дружніх класів використовується схожа структура, як і для дружніх функцій.


Перед оголошенням класу Motorcycle вказується існування класу Auto: class Auto. Далі ми робимо клас Auto дружнім, і для цього використовуємо ключове слово friend.

Вихідний код

Весь код буде доступний після підписки на проект!

Завдання до уроку

Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань

Велике завдання за курсом

Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця

Також варто подивитися

Уроки C++ WinForms / Создание программ на Windows
Создание игры на C++ / Создание "Змейки"
Уроки Qt Creator | Графический интерфейс на С++
Игра с дизайном на C++ / Создание C++ WinForms игры
Вивчення C++ від новачка до профі
Основы программирования
Коментарі
Додати коментар

Поки що коментарів немає