基類(或父類):被繼承的所有的類(人類)
派生類(或子類):從基類中繼承新增部分特性的類
class 子類:繼承方式 基類1,繼承方式 基類2...
;
繼承目的:實現設計與**的重用,充分利用原有的類
繼承方式:1、公有繼承,2私有繼承,3保護繼承
簡要版public繼承
公有->公有 私有->不可訪問 保護->保護
!基類中的私有成員雖然不能直接在子類中訪問,但是可以通過非私有介面訪問
protected 繼承
公有->保護 私有->不可訪問 保護->保護
private 繼承
公有->私有 私有->不可訪問 保護->私有
詳細版1、公有繼承:public
基類 子類
保護 保護(類外不能引用,類內能訪問)
公有 公有 (類外能引用,類內能訪問)
私有 不可訪問 (類外不能引用,類內也不能訪問)
ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員
2、私有繼承:private
基類 子類
保護 私有(類外不能引用,類內能訪問)
公有 私有 (類外不能引用,類內能訪問)
私有 不可訪問 (類外不能引用,類內也不能訪問)
ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員
3、保護繼承:protected
基類 子類
保護 保護(類外不能引用,類內能訪問)
公有 保護 (類外不能引用,類內能訪問)
私有 不可訪問 (類外不能引用,類內也不能訪問)
ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員
ps:繼承時,不會選擇性地繼承(而是將父類所有資源拷貝一次放置在子類中)
構造器:每個物件都是由構造器來生成物件的
(派生類中:不僅要例項化新增加部分,還例項繼承的部分)
1、子類構造器:不僅要構造自己新增成員,還需要通過初始化列表來呼叫基類構造器來構造繼承的基類成員(若子類的構造器不去呼叫基類的構造器,預設呼叫基類的無參構造器)
初始化列表:
student(…):people(…)
ps:子類的構造器只能例項新的成員,繼承過來的成員只能由該基類的構造器來例項化
ps:先呼叫基類構造器,再呼叫子類構造器
2、析構器:當物件被釋放時,會向物件傳送析構訊息,來通知物件作善後處理。
ps:當子類物件被釋放時,先呼叫子類的析構器,再呼叫基類的析構器
ps:子類中只需要對新增的部作善後處理,基類的善後交給基類的析構器。
當父類方法不滿足子類時,子類可以重寫定義該方法。(子類中基類的方法不會被替換,只是子類的作用域優先呼叫)
class parent
people
(const
char
* n,
char ***,
short age)
:name
(n),
***(***)
,age
(age)
~people()
void
show()
protected
: string name;
//類物件作成員,由people類來呼叫構造器
char ***;
short age;};
class
student
:public people
student
(const
char
* n,
char ***,
short age,
float c)
:people
(n,***,age),c
(c)~
student()
void
display()
protected
:float c;
//分數};
intmain()
同多個基類中派生出子類(子類擁有多個基類)
語法:
class 子類:繼承方式 基類1,繼承方式 基類2...
;
1、構造器:不僅要構造子類新增加部分,還需要通過初始化列表呼叫基類構造器來構造基類部分。
子類構造器(…):基類構造器(…),基類構造器2(…),…
構造順序:1、先構造基類(基類順序繼承列表順序決定),再構造子類
2、析構器的理論知識點與單繼承一樣。
析構順序與構造順序相反
菱形多繼承:擁有公共基類的多繼承,公共繼承出現浪費空間
用虛基類解決,詳見文章
c 繼承和派生
通常子類不加修飾的延續父類的特徵,我們把它叫做繼承 而子類在延續父類特徵的基礎上又新增自己的新特徵,叫做派生。擁有乙個基類的繼承是單一繼承,擁有多個基類的繼承是多重繼承。class 派生類名 派生型別 基類名 注 括號內是派生類自己的成員和成員函式。乙個類的私有成員只能被它的成員函式和友員訪問,不能...
C 繼承和派生
在c 語言中,乙個 派生類可以從乙個 基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為 多繼承。派生類的定義格式 單繼承的定義格式如下 1 2 3 4 class 派生類名 繼承方式 基類名 public 表示公有繼承 private 表示私有繼承 prote...
C 繼承和派生
1 繼承概念 1 繼承是類之間定義的一種重要關係 2 基本語法 class child public parent1,public parent2 3 parent稱基類 父類 child稱派生類 子類 4 繼承方式 public,private,protected.5 重要說明 a 子類擁有父類的...