Урок #21 - Дружественные классы

Урок #21 - Дружественные классы

Рассмотрев работу с дружественными функциями мы переходим к дружественным классам. В уроке мы научимся создавать дружественные классы (friend classes), а также разберем зачем они нужны и как они работают.

Видеоурок

Дружественные классы по своей работе схожи с дружественными функциями. Единственное отличие заключается в объединение не просто функций, а целых классов.


Благодаря дружественному свойству мы можем указать несколько классов, что будут связаны между собой. Это позволит брать данные через объект сразу из нескольких классов.


За счёт этого мы может точно описать логику для различных персонажей в игре или для окон в приложении. Все они могут быть записаны в разных классах, но при этом каждый сможет иметь доступ друг к другу.


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

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++ / Создание "Змейки"
3 урока
Уроки Qt Creator | Графический интерфейс на С++
13 уроков
Изучение C++ от новичка до профи
Комментарии для сайта Cackle