繼承與訪問控制符
要繼承一個類,只需要在類的聲明後跟上<:被繼承的類名>即可
形成:
class son:father
{
};
形式,就在son和father之間建立了繼承關係。
被繼承的類稱爲基類,繼承者即爲派生類
派生類實際上有一個包含着基類的區域
<類似於我繼承一筆銀行存款,只是在我的賬戶上多出一部分份額>。
這樣的事實決定了着我們在派生類中對基類的訪問只能通過派生類完成,因爲派生類是一個單獨的個體,派生類和基類不能被視作不分你我的混沌。
說得不甚清楚,先從訪問控制符入手理解
有public,protected,private三種訪問控制符。
形如
class set
{
public:
…
void functionA();
protected:
void functionB();
private:
void functionC();
};
的類(class)set.
通常我們考慮三種用戶對它的成員函數的使用,
1、程序使用者:調用頭文件使用函數
2、程序編寫者:頭文件的設計者
3、派生類:繼承類set的類
對於設計類的咱,這三種都得扮演
1:只能訪問public關鍵字後的成員
2:使用類本身時,能訪問public,在類中能訪問三種成員
3:只能訪問public 和 protected修飾的成員
繼承控制符
除了在類的聲明中有控制符,在類的繼承時也有相應的控制符
Class sonA :public father;//公有繼承
Class sonB :private father;//私有繼承
這兩類修飾符用於限制類的用戶<聲明一個類的對象後>的對基類成員的訪問權限,
不影響派生類對基類成員的訪問權限
譬如
sonA A;
sonB B;
對象A能使用 . 調用father中public的函數<protected依舊只對派生類可見,對用戶不可用>
而B則不能這樣做<私有繼承的成員不能被派生類的用戶訪問>