解决友元类(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();//这里显示的调用父类的函数 }

目录
相关文章
|
5月前
|
编译器 C++
C++类与对象 - 4(初始化列表,Static成员,友元,内部类,匿名对象)
C++类与对象 - 4(初始化列表,Static成员,友元,内部类,匿名对象)
20 0
|
9月前
|
C++
【C++】 --- 友元函数与友元类
【C++】 --- 友元函数与友元类
45 0
C++:类的static成员,友元和构造函数初始化列表
C++:类的static成员,友元和构造函数初始化列表
|
安全 编译器 C++
C++:类中const修饰的成员函数
C++:类中const修饰的成员函数
|
编译器 C语言 C++
【C++要笑着学】友元 | 初始化列表 | 关键字explicit | 静态成员static | 内部类(一)
我是柠檬叶子C。上一章我们一步步地实现了日期类,这一章我们继续往后讲解知识点,比如说友元啊,初始化列表啊、静态成员和内部类,把这些拿出来讲一讲。还是保持最近养成的写作习惯,在讲解知识点之前,我都会用一个例子或问题进行引入,做到"循序渐进" 地讲解。
89 0
【C++要笑着学】友元 | 初始化列表 | 关键字explicit | 静态成员static | 内部类(一)
【C++要笑着学】友元 | 初始化列表 | 关键字explicit | 静态成员static | 内部类(二)
我是柠檬叶子C。上一章我们一步步地实现了日期类,这一章我们继续往后讲解知识点,比如说友元啊,初始化列表啊、静态成员和内部类,把这些拿出来讲一讲。还是保持最近养成的写作习惯,在讲解知识点之前,我都会用一个例子或问题进行引入,做到"循序渐进" 地讲解。
102 0
【C++要笑着学】友元 | 初始化列表 | 关键字explicit | 静态成员static | 内部类(二)
|
前端开发 开发者
class-实例方法和静态方法|学习笔记
快速学习 class-实例方法和静态方法
59 0
typescript37-class的构造函数实例方法继承(extends
typescript37-class的构造函数实例方法继承(extends
62 0
typescript37-class的构造函数实例方法继承(extends
|
前端开发 JavaScript
class-使用extends实现子类继承父类
class-使用extends实现子类继承父类