三種繼承的特點:
public:繼承時保持基類中各成員的屬性不變,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;
private:繼承時基類中各成員屬性均變為private,並且基類中的private成員被隱藏。派生類的成員也只能訪問基類中的public/protected成員;
protected:繼承時基類中各成員屬性均變為protected,並且基類中private被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;
訪問控制與繼承:
和私有成員類似,受保護的成員對於類的使用者來說是不可訪問的。
和公有成員類似,受保護的成員對於派生類和友元來說是可訪問的。此外,protected還有一條重要地性質。
派生類的成員或友元只能通過派生類物件來訪問基類的受保護成員。派生類對於乙個基類物件中的受保護成員沒有任何訪問特權。
這裡的訪問控制僅僅是針對成員函式的引數是類的引用的形式:
例:class base
;class sneaky : public base
;void sneaky::clobber(sneaky &s)
void sneaky::clobber(base &s)
C易忘知識點
巨集定義中 類似於拼接,如 12 34 1234,並且如果34是乙個巨集,也會阻止其展開並拼接 將後邊的內容轉換成字串巨集定義可以巢狀 巨集定義中可以使用三目運算子,因為被認為是表示式,最終返回的是乙個結果。其實最重要就是記住巨集的用法是直接展開,然後看符不符合語法。int 左移 不溢位時符號位不變...
c基本易忘知識點
const 作用是把乙個變數視為常量,這個變數不能被改變,可以用const int a b a不能被改變,a可以改變,a c這樣是可以的,a 20這樣是不行的 int const a b 這樣的話a不能改變,而 a可以改變 register關鍵字暗示編譯器前面帶有這個關鍵字的變數將被頻繁的利用 re...
C 部分易忘知識點(更新)
define bool int define ture 1 define false 0布林型別變數在c 中佔1位元組空間,bool型別取值範圍僅有兩個值 true和false。例 bool flag true 引入命名空間的目的是為了避免命名衝突,其關鍵字為namespace。試想兩個不同程式設計...