解决友元类(friend class)无法继承的问题

解决友元类(friend class)无法继承的问题

 

友元声明friend class是无法继承的。举例说明:class A声明class B为其友元类,也就是说class A授予class B访问class A的所有包括私有成员在内的所有成员。如果class C 继承class B.那么class C是不具备这种特权的。

 

 

但是如果我想在class C中访问class A的某个私有或者保护成员函数怎么办?

我们可以把工作交给父类。

 

#include <iostream> using namespace std; class B; class A { friend B; public: A(){}; ~A(){} protected: void Operation(){ cout << "Hello, I am here." << endl; } private: }; class B { public: B(){}; ~B(){}; virtual void Operate() { a.Operation(); } private: A a; }; class C: public B { public: C(){} ~C(){} private: }; int main(void) { C c; c.B::Operate();//这里显示的调用父类的函数 }

上一篇:select、distinct、limit使用


下一篇:ABPA-报表开发-自定义选择屏幕搜索帮助