整個c++程序設計全面圍繞面向對象的方式進行,類的繼承特性是c++的一個非常非常重要的機制,繼承特性可以使一個新類獲得其父類的操作和數(shù)據結構,程序員只需在新類中增加原有類中沒有的成分。
可以說這一章節(jié)的內容是c++面向對象程序設計的關鍵。
下面我們簡單的來說一下繼承的概念,先看下圖: 上圖是一個抽象描述的特性繼承表
交通工具是一個基類(也稱做父類),通常情況下所有交通工具所共同具備的特性是速度與額定載人的數(shù)量,但按照生活常規(guī),我們來繼續(xù)給交通工具來細分類的時候,我們會分別想到有汽車類和飛機類等等,汽車類和飛類同樣具備速度和額定載人數(shù)量這樣的特性,而這些特性是所有交通工具所共有的,那么當建立汽車類和飛機類的時候我們無需再定義基類已經有的數(shù)據成員,而只需要描述汽車類和飛機類所特有的特性即可,飛機類和汽車類的特性是由在交通工具類原有特性基礎上增加而來的,那么飛機類和汽車類就是交通工具類的派生類(也稱做子類)。以此類推,層層遞增,這種子類獲得父類特性的概念就是繼承。
下面我們根據上圖的理解,有如下的代碼: #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空格加基類名稱進行定義,如上面代碼中的class Car:public Vehicle。
|