Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpOpFr 55 of 150 menu
◀ ▶

Дружественная функция в C++

Функция вывода, которая записана вне класса, не видит поля под private. Строка friend внутри класса разрешает выбранной функции их читать. Так подключают operator<<, когда поля закрыты.

Объявление friend пишут внутри класса, а саму функцию - следом, уже снаружи. Запишем Vec:

#include <iostream> class Vec { public: Vec(int xValue, int yValue) { x = xValue; y = yValue; } friend std::ostream& operator<<(std::ostream& out, const Vec& v); private: int x = 0; int y = 0; }; std::ostream& operator<<(std::ostream& out, const Vec& v) { out << v.x << " " << v.y; return out; }

Сейчас создадим объект и выведем его:

int main() { Vec point(4, 6); std::cout << point << "\n"; return 0; }

Сделайте класс Note с закрытым полем text. Объявите дружественный вывод через <<. Создайте объект со строкой "ok" и напечатайте его.

Для Note с текстом "hi" выведите значение в поток с переводом строки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить