access private members in inheritance
Well, if you have access to base class, you can declare class B as friend class. But as others explained it: because you can, it does not mean it's good idea. Use protected members, if you want derived classes to be able to access them.
Private members of a base class can only be accessed by base member functions (not derived classes). So you have no rights not even a chance to do so :)
class Base
- public: can be accessed by anybody
- private: can only be accessed by only base member functions (not derived classes)
- protected: can be accessed by both base member functions and derived classes
Quick answer: You don't. Thats what the protected
key-word is for, which you want to use if you want to grant access to subclasses but no-one else.
private
means that no-one has access to those variables, not even subclasses.
If you cannot change code in A
at all, maybe there is a public
/protected
access method for that variable. Otherwise these variables are not meant to be accessed from subclasses and only hacks can help (which I don't encourage!).