cc30a_demoCppPrimer_友元与继承txwtech友元关系不能继承要明确授予友元

//友元可以访问类的private与protected成员
//友元关系不能继承-要明确授予友元

 1 #include <iostream>//CppPrimer_友元与继承-txwtech--cc30a_demo
 2 using namespace std;//导入std名称空间
 3 //友元可以访问类的private与protected成员
 4 //友元关系不能继承-要明确授予友元
 5 
 6 class Base //你爸爸
 7 {
 8     friend class Frnd;
 9     friend class D2;
10 protected:
11     int i;
12 };
13 class D1 :public Base //你,你继承你爸爸
14 {
15     friend class Frnd;//我爸爸
16     friend class D2;//
17 private:
18     int j;
19 };
20 
21 class Frnd //我爸爸
22 {
23 public:
24     int mem(Base b) { return b.i; }
25     int mem(D1 d) { return d.i; }
26 
27 };
28 class D2 :public Frnd //
29 {
30 public:
31     int mem(Base b) { return b.i; }
32     int mem(D1 d) { return d.j; }
33 };
34 int main()
35 {
36     Base a;
37     D1 b;
38     Frnd c;
39     D2 d;
40     getchar();
41     return 0;
42 }
欢迎讨论,相互学习。 txwtech@163.com
原文地址:https://www.cnblogs.com/txwtech/p/12197590.html