Учитывая пример кода:
class Base {
public:
bool pub;
protected:
bool prot;
};
class Derived : private Base {
friend class MyFriend;
};
class MyFriend {
Derived _derived;
void test() {
// Does standard provide me access to _derived.pub and _derived.prot?
cout << "Am I allowed access to this: " << _derived.pub
<< " and this: " << _derived.prot;
}
};
Дает ли мне дружба весь доступ, который я получил бы, как если бы я был функцией-членом в классе, для которого я друг? Другими словами, могу ли я получить доступ к защищенным и общедоступным членам базового класса, который унаследован в частном порядке, так как я друг?