cpp中友元的傳遞性

c++中的友元不具有傳遞性

  • 老子的朋友是老子的朋友,兒子的朋友是兒子的朋友
class Base
{
    friend class F;//1
protected:
    int a;
};
class Extend : public Base
{
    friend class F;//2
protected:
    int b;
};
class F
{
    Base b;
    Extend e;
    void f()
    {
        b.a;//1.處不聲明此處是錯誤的
        e.b;//2.處不聲明此處是錯誤的
        e.a;//2.處不聲明此處是錯誤的
    }
};
  • 你是我的朋友,他是我的朋友,但你不是他的朋友
class ni
{
//不能訪問ta的成員
};
class wo
{
    friend class ni;
};
class ta
{
    friend class wo;
};
  • 要想是兩個類互為友元必須在兩個類中都要聲明對方。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 不支持上傳文件,所以就復(fù)制過來了。作者信息什么的都沒刪。對前端基本屬于一竅不通,所以沒有任何修改,反正用著沒問題就...
    全棧在路上閱讀 1,998評論 0 2
  • 現(xiàn)代的時間觀讓我們陷入了“時間貧瘠”中。 “活在當下”要求我們一段時間內(nèi)只專注于一件事,放慢節(jié)奏,并且去體會自己的...
    青青狐閱讀 445評論 0 0
  • 今天上完了最后一節(jié)課,也算是進入節(jié)假日,整個人放松些許。 舍友們都回家了,忽而覺得天氣雖好,周邊空無一人的時候還是...
    三瘋_zz閱讀 351評論 3 3