Understanding and Implementing Friend Functions in C++
Friend function (дружественная функция) в языке программирования - это функция, которая имеет доступ к закрытым членам класса, не являясь членом самого класса.
Для того, чтобы определить функцию в качестве дружественной функции класса, нужно использовать ключевое слово friend в объявлении класса. Пример объявления дружественной функции:
class MyClass {
private:
int myPrivateVariable;
friend void myFriendFunction(MyClass& obj);
};
void myFriendFunction(MyClass& obj) {
obj.myPrivateVariable = 10;
}
В этом примере мы объявляем класс MyClass с приватным переменной myPrivateVariable. Затем мы объявляем внешнюю функцию myFriendFunction и помечаем ее ключевым словом friend. Это дает функции доступ к приватной переменной класса.
Далее, мы можем использовать дружественную функцию для изменения значения приватной переменной класса:
MyClass myObject;
myFriendFunction(myObject);
В этом примере мы создаем объект класса MyClass и передаем его в качестве параметра в функцию myFriendFunction. Функция изменяет значение приватной переменной myPrivateVariable на 10.
Дружественные функции могут быть полезны в некоторых случаях, например, когда нужно дать доступ к приватным членам класса без необходимости сделать их публичными. Однако, следует использовать дружественные функции осторожно и ограниченно, так как это может нарушить инкапсуляцию.