Использование дружественной функции
Члены класса могут быть закрытыми и открытыми. К закрытым членам класса доступ существует только внутри класса. Однако часто необходимо, чтобы член класса оставался закрытым, но некоторые внешние функции или методы имели к нему доступ. Такие внешние функции, которые имеют доступ к закрытым членам класса,
называются дружественными функциями. Чтобы задекларировать функцию как дружественную для класса, необходимо указать прототип этой функции в описании класса, предварив его ключевым словом friend. Пример использования дружественной функции приведен в следующем коде.
#includeusing namespace std; //Класс с закрытым полем: class MyClass{ double x; public: MyClass(double z){x=z;} //Дружественная функция: friend void show(MyClass obj); }; //Описание дружественной функции: void show(MyClass obj){ cout << "x = " << obj.x << endl;} int main(){ MyClass a(10); //Дружественная функция имеет доступ к закрытым членам: show(a); return 0; }