1:繼承是物件導向的主要特徵(此外還有封裝和多型)之一,它使得乙個類可以從現有類中派生,而不必重新定義乙個新類。繼承的實質就是用已有的資料型別建立新的資料型別,並保留已有資料型別的特點,以舊類為基礎建立新類,新類包含了舊類的資料成員和成員函式,並且可以在新類中新增新的資料成員和成員函式。舊類被稱為基類或父類,新類被稱為派生類或子類。
2:類的繼承形式如下:
class 派生類名稱識別符號:[繼承方式] 基類名稱識別符號
[訪問控制修飾符:]
[ 成員宣告列表]
繼承方式有3中派生型別,分別為共有型(public)、保護型(protected)和私有型(privated),訪問控制修飾符也是public、protected、private三種型別,成員宣告列表中包含類的成員變數及成員函式,是派生類新增的成員。「:」是乙個運算子,表示基類和派生類之間的繼承關係。
3:乙個小例子。定義乙個員工類,它包含員工id、員工姓名、所屬部門等資訊。
class cemployee//定義員工類
public:
int m_id;//定義員工id
char m_name[128];//定義員工姓名
char m_depart[128];//定義所屬部門
定義乙個操作員類,通常操作員屬於公司的員工,它包含員工id、員工姓名、所屬部門等資訊,此外還包含密碼資訊、登入方法等。
class coperator :public cemployee//定義乙個操作員類,從cemployee類派生而來
public:
char m_password[128];//定義密碼
bool login();
操作員類是從員工類派生的乙個新類,新類中增加密碼資訊、登入方法等,員工id、員工姓名等資訊直接從員工類中繼承得到。
3:例子**如下:
// 8.1.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
class cemployee //定義員工類
void outputname() //定義共有成員函式
{cout <
執行結果:
程式中,cemployee類是coperator類的基類,也就是父類。coperator類將繼承cemployee的所有非私有成員(private類成員不能被繼承)。
使用者在父類中派生子類時,可能存在一種情況,即在子類中定義了乙個與父類同名的成員函式,此時稱為子類隱藏了父類的成員函式。
收藏
C 入門經典 例8 8 虛繼承
1 以前講到從cbird類和cfish類派生子類cwaterbird時,在cwaterbird類中將存在兩個canimal類的複製。那麼如何在派生cwaterbird類時使其只存在乙個canimal基類呢?c 語言提供的虛繼承機制能夠解決這個問題。如下 8.8.cpp 定義控制台應用程式的入口點。i...
C 入門經典 例8 6 多重繼承的構造順序
1 單一繼承是先呼叫基類的建構函式,然後呼叫派生類的建構函式,但多重繼承將如何呼叫建構函式呢?多重繼承中的基類建構函式被呼叫的順序以派生表中宣告的順序為準。派生表就是多重繼承定義中繼承方式後面的內容,呼叫順序就是按照基類名識別符號的前後順序進行的。2 如下 8.6.cpp 定義控制台應用程式的入口點...
C 入門經典 例9 3 類模板,簡單類模板
1 使用template關鍵字不但可以定義函式模板,而且可以定義類模板。類模板代表一族類,它是用來描述通用資料型別或處理方法的機制,它使類中的一些資料成員和成員函式的引數或返回值可以取任意資料型別。類模板可以說是用類生成類,減少了類的定義和數量。2 類模板的一般定義形式如下 template 型別形...