Это избыточно.Foo уже имеет доступ ко всем членам Foo.Два объекта Foo могут получить доступ к элементам друг друга.
class Foo {
public:
int touchOtherParts(const Foo &foo) {return foo.privateparts;}
private:
int privateparts;
};
Foo a,b;
b.touchOtherParts(a);
Приведенный выше код будет работать нормально.B получит доступ к личному члену данных.