C 語言學習記錄 12 類和物件

2021-10-24 08:12:07 字數 1745 閱讀 1274

c++被稱作物件導向的語言,那麼乙個很重要的問題就是什麼是物件。

物件(object),就是指乙個物品或一件事物。

同時,這個事物有自己的屬性和操作特點。

乙個圓可以被看作物件,那麼它所含的屬性就有半徑、座標、面積,可以進行的操作就有改變它的位置;把一本書看作乙個物件,那麼它的屬性就是質量、頁數、字元數、長寬高等等,可以進行的操作就是開啟書或合上書。

其實,所有的程式語言都有物件導向程式設計的特點,只是c++的語法特點使得對物件的程式設計更加的容易。

類,就是將乙個物件的所有屬性和操作方法總結起來並封裝的乙個語法。

通過類的封裝,使得對不同但是型別相同的物件的操作和描述更加容易,有一點函式呼叫的意味在裡面。

還是說一本書,它有以上的性質,那麼抽象成類的方式就是

class

book

當然,上述的只是乙個例子,其編寫方式並不符合類的語法。

首先,編寫類時要宣告類的名稱,然後決定它所面向的範圍,有

公共型的public,對所有的使用者開放;

私人型的private,除了class本身以外都不能進行呼叫;

被保護型的protected,只能在class和同一package中呼叫訪問。

若沒有限定型別,預設為private型

最後,將物件需要封裝的屬性加入即可。

class

tvvoid

turnon()

//編寫操作

void

turnoff()

void

setvolume

(int newvolumelevel)

void

setchannel

(int newchannel)

void

channelup()

void

channeldown()

void

volumeup()

void

volumedown()

};

以上**來自《c++程式設計(第三版)》(梁勇著)並做了一點標註

書中的原**還用了幾個函式過載,也有對基本判斷語句和邏輯運算子的運用,是乙個比較好的**示例。

類具有封裝性、多型性和繼承性。

不同型別的類所開放的訪問程度體現了類的封裝性,繼承性和多型性暫時不提。

從記憶體占用來看,類是現實世界在計算機中的反映,它將資料和對這些資料的操作封裝在一起,並沒有額外開空間。

而物件則是類中的例項,是實際擠占空間的部分。

在定義物件時遵循以下的語法:

類名 物件名

語法類似於函式的定義,比如上面程式的下半部分:

int

main()

其中有乙個tv1.turnon(),這一類就是定義物件名的方法。

操作方法:

1.在類中宣告函式體原型

2.在類外給出函式體實現,並在函式名前使用類名作為限定

3.可以直接在類中給出函式體,形成內聯成員函式

4.允許宣告過載函式和帶預設值的函式

內聯成員函式

1.為提高執行時的效率,一般較為簡單的函式可以宣告為內聯形式

2.函式體中不要有諸如while迴圈或判斷語句等複雜形勢

3.在類中宣告內聯函式的方法:使用inline語句或將函式體放入類的宣告中

C 語言學習之物件和類

1.1 抽象和類 1,定義 類是一種將抽象轉換為使用者自定義型別的c 工具,他將資料表示和操縱資料的方法組合成乙個整潔的包。2,類的開發和編寫使用該類的程式 c 程式將介面 類定義 放在標頭檔案中,並將實現 類方法的 放在源 檔案中。2.1 類定義 類宣告的例項 建立名為stock.h的標頭檔案 使...

C語言學習筆記12

回顧 1.位置指標 作業 1.id判斷 2.根據id顯示人員資訊 預處理指令是c語言支援的一種特殊指令 它們以 做開頭,不以 做結尾 預處理指令在編譯的第乙個階段被處理 所有預處理指令都是把程式變成另外的樣子 gcc可以使用 e選項單獨處理所有預處理指令 define是乙個預處理指令 這個預處理指令...

C語言學習要點記錄

1.運算的優先順序 算數 關係 邏輯 賦值 逗號運算子 2.複製是程式不良的表現 因為一旦乙個地方有變動要在很多地方修改 3.程式設計的過程中最好使用單一出口 4.本地變數在定義的時候不會預設初始化,引數在定義的時候一定要初始化 5.本地變數的生存期和作用域在定義的塊內 6.程式這次執行正常下次執行...