Пример

classMyClass
{
public:
friend int getA(MyClass& mc);
   
private:
int a;
};

int getA(
MyClass& mc){
return mc.a;
}

Решение
Расширение интерфейса класса предпочтительнее использования дружественных функций.

classMyClass
{
public:
int getA();
   
private:
int a;
};

int MyClass::getA(){
return 
MyClass::a;
}