物件導向程式設計基於三個基本概念:資料抽象、繼承和動態繫結。
物件導向程式設計的核心思想:
通過繼承關係聯絡在一起的類構成一種層次關係。通常在層次關係的根部有乙個基類,其它類則直接或間接從基類繼承而來,這些繼承的類稱為派生類。
基類負責定義在層次關係中所有類共同擁有的成員,而每個派生類定義各自特有的成員。
在c++語言中,基類將型別相關的函式與派生類不做改變直接繼承的函式區分對待。對於某些函式,基類希望它的派生類各自定義適合自身的版本,此時基類就將這些函式宣告為虛函式。
派生類必須在其內部對所有重新定義的虛函式進行宣告。派生類可以在這樣的函式之前加上virtual關鍵字,但是並不是非得這麼做。
c++11新標準允許派生類顯示地註他將使用哪個成員函式改寫基類的虛函式,具體措施是在該函式的形參列表之後增加乙個override關鍵字。
派生類必須通過使用類派生列表明確指出從哪幾個基類繼承而來的,形式是:首先乙個冒號,後面緊跟以逗號分隔的基類列表,其中每個基類前面可以有訪問說明符。
在c++語言中,當我們使用基類的引用(或指標)呼叫乙個虛函式時將發生動態繫結,動態繫結又稱為執行時繫結。
C primer第15章節詳解物件導向程式設計
include include sales item.h using namespace std class quote class bulk quote public quote int main double print total ostream os,const quote item,siz...
第15章 物件導向程式設計
派生類中的虛函式可以返回基類函式所返回型別的派生類的引用或指標。只有指定為虛函式的成員函式才能進行動態繫結。派生類可以進一步限制但不能放鬆對所繼承的成員的訪問。使用private或protected派生的類不繼承基類的介面,稱為實現繼承。使用class保留字定義的派生類預設具有private繼承,而...
第 15章 物件導向程式設計(一)
以quote基類和bulk quote派生類為例,記錄標頭檔案和cpp檔案的構成。目錄 基類和派生類的標頭檔案及cpp檔案結構 quote.h quote.cpp bulk quote.h bulk quote.cpp main.cpp ifndef quote h define quote h i...