0
 class Container{



private:
    int num_;

public:

    Container(): num_(1)
    {};

    void add(Container other){
        num_+=other.num_;
    }

    int get_num(){
        return num_;
    }

    void set_num(int n){
        num_=n;
    }

};

In the above example other.num_ is accessible... Why? Shouldn`t it be unaccessible due to the private modifier?

Alex
  • 389
  • 1
  • 2
  • 14

1 Answers1

2

A class can always access it's own member, whatever access modifier a member variable it has.
private: only the class can access
protected: only derived classes can access
public: everyone can access
If you write:

class Container{
private:
    int num_;
}

Every object can access private members of any other object of same class because in c++ access modifier is for a class not for each object of that class.

deeiip
  • 3,319
  • 2
  • 22
  • 33