Это не так, как работают функции друзей.Дружественная функция - это обычная функция (не функция-член), которая означает, что она не связана с конкретным экземпляром объекта.Единственная разница между ней и функцией не-друга заключается в том, что друзьям разрешен доступ к закрытым членам класса, с которыми они дружат.
Если вы хотите иметь возможность доступа к членам конкретного экземпляра объекта,Вы должны либо использовать функцию-член вместо функции друга:
class hello {
int a, b;
public:
int add() { return a + b; }
}
, либо взять экземпляр объекта в качестве параметра в функции друга:
int add(const hello& instance) {
return instance.a + instance.b;
}