整個(gè)c++程序設(shè)計(jì)全面圍繞面向?qū)ο蟮姆绞竭M(jìn)行,類的繼承特性是c++的一個(gè)非常非常重要的機(jī)制,繼承特性可以使一個(gè)新類獲得其父類的操作和數(shù)據(jù)結(jié)構(gòu),程序員只需在新類中增加原有類中沒有的成分。
可以說這一章節(jié)的內(nèi)容是c++面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵。
下面我們簡單的來說一下繼承的概念,先看下圖: 上圖是一個(gè)抽象描述的特性繼承表
交通工具是一個(gè)基類(也稱做父類),通常情況下所有交通工具所共同具備的特性是速度與額定載人的數(shù)量,但按照生活常規(guī),我們來繼續(xù)給交通工具來細(xì)分類的時(shí)候,我們會分別想到有汽車類和飛機(jī)類等等,汽車類和飛類同樣具備速度和額定載人數(shù)量這樣的特性,而這些特性是所有交通工具所共有的,那么當(dāng)建立汽車類和飛機(jī)類的時(shí)候我們無需再定義基類已經(jīng)有的數(shù)據(jù)成員,而只需要描述汽車類和飛機(jī)類所特有的特性即可,飛機(jī)類和汽車類的特性是由在交通工具類原有特性基礎(chǔ)上增加而來的,那么飛機(jī)類和汽車類就是交通工具類的派生類(也稱做子類)。以此類推,層層遞增,這種子類獲得父類特性的概念就是繼承。
下面我們根據(jù)上圖的理解,有如下的代碼: #include <iostream> using namespace std; class Vehicle { public: void EditSC(float speed,int total); protected: float speed;//速度 int total;//最大載人量 }; void Vehicle::EditSC(float speed,int total) { Vehicle::speed = speed; Vehicle::total = total; } class Car:public Vehicle//Car類繼承Vehicle的特性,Car類是Vehicle的派生類 { public: Car() { aird=0; } protected: int aird;//排量 }; class plane:public Vehicle { protected: float wingspan;//翼展 }; void main() { Car a; a.EditSC(150,4); cin.get(); } 派生類的定義可以在類名稱后加冒號public空格加基類名稱進(jìn)行定義,如上面代碼中的class Car:public Vehicle。
|