轉載位址
http://www.freecplus.net/754dd91b657a436f874a7146c12d332b.html
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
想學習的可以直接去C語言技術網(www.freecplus.net)學習 我這裡隻是想備份一些資料
這個網站值得學習
一、繼承
繼承是面向對象程式設計中最重要的一個概念。繼承允許我們根據一個類來定義另一個類,達到了代碼功能重用效果。
當建立一個類時,如果待建立的類與另一個類存在某些共同特征,程式員不需要全部重新編寫成員變量和成員函數,隻需指定繼承另一個類即可,被繼承的類稱為基類或父類,建立的類稱為派生類或子類。
二、基類和派生類
定義一個派生類,需要指定它的基類,文法如下:
class <派生類名>:<繼承方式> <基類名>
{
// 派生類類體
};
繼承方式是 public、protected 或 private 其中的一個,基類是之前定義過的某個類的名稱。如果未指定繼承方式,則預設為 private。
選秀之後,被選中的超女成了宮女和王妃,宮女和王妃從超女那裡繼承了姓名、年齡、身高、身材、顔值等特征,還會具備一些新的特征,如果是王妃,有稱号、居住的宮殿、奉祿、為她服務的太監和宮女數量等。還有,王妃的年齡、身材和顔值都不能随便讨論的,會掉腦袋的。
示例(book235.cpp)
/*
* 程式名:book235.cpp,此程式用于示範C++類的繼承與派生。
* 作者:C語言技術網(www.freecplus.net) 日期:20190525
*/
#include <stdio.h>
#include <string.h>
class CGirl // 定義超女類
{
public:
char m_name[50]; // 姓名
int m_age; // 年齡
int m_height; // 身高,機關:厘米cm
char m_sc[30]; // 身材,火辣;普通;飛機場。
char m_yz[30]; // 顔值,漂亮;一般;歪瓜裂棗。
int Show() // 顯示超女基本資訊的成員函數體
{
printf("姓名:%s,年齡:%d,身高:%d,身材:%s,顔值:%s\n",m_name,m_age,m_height,m_sc,m_yz);
}
};
class CKCon:public CGirl // 定義王妃類,從超女類繼承
{
public:
char m_ch[50]; // 稱号
char m_palace[50]; // 居住的宮殿
int m_sal; // 奉祿
int Show() // 顯示王妃的稱号、宮殿和奉祿
{
printf("姓名:%s,稱号:%s,栖:%s,奉祿:%d兩銀子。\n",m_name,m_ch,m_palace,m_sal);
}
};
int main()
{
CKCon KCon; // 執行個體化一個KCon對象
strcpy(KCon.m_name,"楊玉環");
KCon.m_age=28;
KCon.m_height=168;
strcpy(KCon.m_sc,"火辣");
strcpy(KCon.m_yz,"漂亮");
strcpy(KCon.m_ch,"楊貴妃");
strcpy(KCon.m_palace,"華清宮");
KCon.m_sal=10000;
KCon.Show(); // 如果子類中沒有Show函數,就會調用父類的Show函數。
}
運作效果

三、繼承方式
當一個類派生自基類,該基類可以被繼承為 public、protected 或 private 幾種方式,當使用不同類型的繼承時,遵循以下幾個規則:
1)公有繼承(public):當類派生以public方式繼承時,基類的公有成員也是派生類的公有成員,基類的保護成員也是派生類的保護成員,基類的私有成員不能直接被派生類通路,但是可以通過調用基類的公有和保護成員來通路。
2)保護繼承(protected): 當類派生以protected方式繼承時,基類的公有和保護成員将成為派生類的保護成員。
3)私有繼承(private):當類派生以private方式繼承時,基類的公有和保護成員将成為派生類的私有成員。
我們幾乎不使用 protected 或 private 繼承,通常使用 public 繼承。
五、基類與派生類的指針
基類的指針可以指向基類對象,也可以指向派生類對象,但是不能通過基類的指針通路派生類的成員。
派生類的指針可以指向派生類對象,但不可以指向基類對象。
六、多繼承
多繼承即一個派生類可以有多個基類,它繼承了多個基類的特性。
C++ 類可以從多個基類繼承成員,文法如下:
class <派生類名>:<繼承方式1><基類名1>,<繼承方式2><基類名2>,…
{
// 派生類類體
};
其中,繼承方式是 public、protected 或 private 其中的一個,用來修飾每個基類,各個基類之間用逗号分隔。
七、應用經驗
類的繼承與派生在windows環境開發中用得比較多,在Linux環境下用得比較少,這麼多年來,我隻是偶爾用一下,大家隻要了解繼承與派生基本用法就行了,如果在實際開發中真的要用到類的繼承,再來研究也不遲,這個沒什麼技術難度。