Search code examples
c++classprivateprivate-members

Access private elements of object of same class


Is this legal? If not, will the following code allow this?

class Foo
{
    friend class Foo;
}

Solution

  • That's redundant. Foo already has access to all Foo members. Two Foo objects can access each other's members.

    class Foo {
    public:
      int touchOtherParts(const Foo &foo) {return foo.privateparts;}
    private:
      int privateparts;
    };
    
    Foo a,b;
    b.touchOtherParts(a);
    

    The above code will work just fine. B will access a's private data member.