天天看點

結構與類

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,如需轉載請自行聯系原作者

繼續閱讀