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

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

Дружественные классы в языке C++. В этом уроке мы научимся создавать дружественные классы (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!";
  }
};
Как видим, здесь используется та же структура. Необходимо изначально указать про существование класса, прежде чем его использовать class Auto;. Чтобы сделать этот класс дружественным мы используем ключевое слово friend.

Исходный код

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

Онлайн редактор кода

Загрузка...

Задание к уроку

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

Большое задание по курсу

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

Также стоит посмотреть

Создание игры на C++ / Создание "Змейки"
3 урока
Уроки Qt Creator | Графический интерфейс на С++
13 уроков
Изучение C++ от новичка до профи