Привет, у меня возникли проблемы с пониманием ключевого слова друга из C ++
Допустим, у меня есть класс, как показано ниже:
class A
{
private:
friend class B;
struct Astruct
{
int funVar = 1;
};
Astruct myStruct
public:
changeAStruct(); // changes the value of funVar to 2
};
class B
{
//how do i here get access to myStruct with the value 2?
};
Надеюсь, приведенный выше псевдокод покажет вам мою проблему. Мне нужен тот же экземпляр myStruct, чтобы при использовании указателя this я попадал в класс A в классе B. Как этого добиться?
Чего я не хочу, так это набирать это в классе B:
A::Astruct myStruct
Поскольку это создаст новую структуру в классе B с funVar, установленным в 1. Я хочу такую же структуру в классе A, но теперь в классе B ...
РЕДАКТИРОВАТЬ: я предполагаю, что из основного я могу отправить myStruct в класс B в качестве ссылки и получить к нему доступ оттуда. Это оптимальная вещь?