C++ 訪問控制與繼承
protected成員
前面我們介紹過protected表示這個成員可以被派生類和友元訪問,但是不能被其他類訪問。
此外,派生類的成員不能夠訪問基類的protected成員。
(如果派生類可以改變基類protected的成員,那么我們像上面的聲明即可很簡單的規(guī)避protected的只能夠讓派生類訪問的機制了,f2只是C的友元,但是它可以改變B的protected成員,這是沒道理的。
公有、私有和受保護繼承
派生訪問說明符是控制派生類用戶對于基類的訪問權(quán)限。
派生訪問控制符還可以控制繼承自派生類的新類的訪問權(quán)限
友元和繼承
就像友元不能傳遞一樣,友元不能繼承。
當一個類將另一個類聲明為友元時,這種關(guān)系只對做出聲明的類有效,對原來的類來說,友元的基類和派生類不具有特殊的訪問能力。
默認的繼承保護級別
默認情況下,struct關(guān)鍵字定義的派生類是public繼承的,class關(guān)鍵字定義的派生類是private繼承的。
注:我們最好顯式的將繼承方式聲明出來,而不是依賴于默認繼承機制。
標簽: