c++ - Why can friend class have access to Base class private data through Derived class -
c++ - Why can friend class have access to Base class private data through Derived class -
this first time post question here.
class base of operations { private: int base; friend class question; }; class derived : public base{ private: int super; }; class question{ public: void test(base& base, derived & derived) { int value1 =base.base; // no problem, because question friend class of base of operations int value2 =derived.super; // compile error, because question not friend class of base of operations // question here int value3 =derived.base; // no compile error here, not understand why. } }; the question indicated in lastly row of class question.
friend applies of members of type, whether or not type inherited. stress point: members shared.
this means question class has access members of base, int base::base. whether accesses fellow member through instance of derived irrelevant, because actual fellow member beingness accessed declared on base.
c++ friend
Comments
Post a Comment