C++:49---继承中的友元
生活随笔
收集整理的這篇文章主要介紹了
C++:49---继承中的友元
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、友元在繼承中的關系
我們在友元的文章中介紹過,友元關系不能繼承。
(1)友元關系不存在傳遞性,即每個類負責控制自己的友元類或者友元函數(shù);
(2)友元關系是單向的,不具有交換性。若類B是類A的友元,類A不一定是類B的友元,要看在類中是否有相應的聲明。
(3)友元關系不能被繼承。
因此:
基類的友元不能訪問派生類的新成員,但是仍可以訪問派生類從基類繼承而來的成員/方法
派生類的友元也不能隨意訪問基類的成員
二、演示案例
class A {private:int a;friend class C;};class B :public A {private:int b;};class C {public:int f(A a) { return a.a; }; //正確,因為C是A的友元,可以訪問其任何成員int f2(B b) { return b.a; }; //正確,因為B繼承了A,所以B中也包含了A的aint f3(B b) { return b.b; }; //錯誤,C不是B的友元,不能訪問其私有成員};總結(jié)
以上是生活随笔為你收集整理的C++:49---继承中的友元的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch集群节点配置详
- 下一篇: C++:32---IO库