1、結構(結構體中可以包含函數,稱為成員函數)
2、類(結構體預設情況下其成員是公有的public,類預設情況下為私有的private)
3、重載
條件:函數的參數類型、參數個數不同方可構成重載,隻有傳回類型不同不行。
注意:函數重載時需要注意帶有預設參數的這種情況。
4、構造函數和析構函數
如果一個類中沒有定義構造函數,編譯器會在以下三種情況下提供預設的構造函數“
(1)、如果類有虛拟成員函數或虛拟繼承父類時;
(2)、如果類的基類有構造函數(可以是使用者自定義,也可以是系統提供的預設構造函數)
(3)、在類的所有非靜态的對象資料成員,他們所屬的類中有構造函數(同上)。
如果已經定義了一個帶參的構造函數,還想要無參數的構造函數,就必須使用者自己定義。
5、繼承
(1)、class fish : public animal
(2)、子類中繼承帶參數的構造函數 fish():animal(400,300)
(3)、多重繼承格式:
class 派生類名:通路權限 基類名稱,通路權限 基類名稱,通路權限 基類名稱
{
};
6、多态性
在基類的函數前加上virtual關鍵字,在派生類中重寫該函數,運作時(延遲綁定)将會根據對象的實際類型來調用相應的函數。
7、純虛函數(聲明方式例如:virtual void breathe()=0;)
(1)純虛函數讓類先具有一個操作名稱,沒有操作内容,讓派生類在繼承時給出具體定義。
(2)含有純虛函數的類叫做抽象類。這種類不能聲明對象,隻為派生類服務。
(3)函數的覆寫發生在派生類和基類之間,兩個函數必須完全相同,且都為虛函數。不屬于這種情況的都是隐藏。重載發生在一個類中。
8、引用與指針
(1)引用隻是一個别名,與位址無關
(2)指針是位址,指針變量要存儲位址值,占用記憶體空間。
本文轉自 韬光星夜 51CTO部落格,原文連結:http://blog.51cto.com/xfqxj/476986,如需轉載請自行聯系原作者