У меня есть идея использования слова friend
для доступа к закрытым членам помимо собственного класса. Например, у меня есть класс A, и мне нужно получить доступ к частному методу атрибута класса B внутри метода A. Я мог бы объявить метод как друг.
Однако см. следующий код:
#include <cstdlib>
class Coord {
private:
int x, y;
public:
Coord (int i1, int i2) : x(i1), y(i2) {
}
friend Coord operator- (Coord const& c1, Coord const& c2) {
return Coord(c1.x-c2.x, c1.y-c2.y);
}
Coord abs() {
return Coord(std::abs(x),std::abs(y));
}
};
Какой выгодой может стать перегрузка оператора- как друга? Я действительно не понимаю, почему это может кого-то заинтересовать.
Я много читал об этом, но я не получил ясного представления.
Может ли кто-нибудь написать небольшой пример, где я могу наблюдать за фактом?