天天看點

c++ 類的繼承和派生這個網站值得學習一、繼承二、基類和派生類三、繼承方式五、基類與派生類的指針六、多繼承七、應用經驗

轉載位址 

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函數。
}
           

運作效果

c++ 類的繼承和派生這個網站值得學習一、繼承二、基類和派生類三、繼承方式五、基類與派生類的指針六、多繼承七、應用經驗

三、繼承方式

當一個類派生自基類,該基類可以被繼承為 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環境下用得比較少,這麼多年來,我隻是偶爾用一下,大家隻要了解繼承與派生基本用法就行了,如果在實際開發中真的要用到類的繼承,再來研究也不遲,這個沒什麼技術難度。

繼續閱讀