C 知識整理 類與物件的概念

2021-09-02 06:10:37 字數 1888 閱讀 5563

1)類外定義成員函式

2)內建成員函式

3)成員函式的儲存方式

c++並不是一種純粹的物件導向的語言,而是一種基於過程和物件導向的混合型語言。c++物件導向的機制就是為了解決編寫大程式時遇到的困難。

物件導向的程式設計有4個主要的特點:抽象封裝繼承多型性。c++的類物件體現了抽象和封裝的特徵,在此基礎上再利用繼承和多型性,就成為真正的物件導向的程式設計。

任何乙個物件都應包括兩個要素,屬性和行為。屬性為物件的靜態特徵,而行為是物件的動態特徵。在c++中,每個物件都由資料和函式組成,資料相當於屬性,而函式相當於行為。

對乙個物件進行封裝處理,把內部實現外部行為分隔開,只留下少量介面與外界聯絡,c++類物件中的函式名就是物件的對外介面,外界可以通過函式名來呼叫函式實現功能。這樣可以大大降低人們操作物件的複雜程度。

利用「封裝性」將物件中的某些部分對外隱蔽,這種做法稱為資訊隱蔽,資訊隱蔽有利於資料安全,防止無關的人了解和修改。

抽象的作用是表示同一類事物的本質。類是物件的抽象,物件是類的具體例項,即類的具體表現形式。

舉個例子,如果已經跟人介紹了什麼是「馬」,那麼再跟人介紹「白馬」的時候只需說明「白馬」是「白色的馬」,省去了重新介紹馬的過程。「白馬」繼承了「馬」的特徵,另外又增加了新的特徵。「馬」是父類(或稱基類),「白馬」是從「馬」派生來的,稱為子類(或派生類)。

c++提供了繼承機制,採用繼承的方法可以很方便地利用已有類建立乙個新的類,這就可以重用軟體中的內容,這就是常說的「軟體重用」。

由繼承而產生的不同的派生類,其物件對同一訊息會作出不同的響應。多型性是物件導向程式設計的乙個重要特徵,能增加程式的靈活性。

class student

;void student::display() /*「::」是作用域限定符*/

{ cout<<"name:"<

如果在類體中定義成員函式,且函式不包括複雜的控制結構,c++系統會自動對它們作內建函式處理。這樣可以大大減少呼叫成員函式的時間開銷。

如果要在類外定義內建函式,只需在前面加上關鍵字inline。

乙個物件所佔的記憶體空間大小只取決於該物件中資料成員所佔空間,而與成員函式無關。函式的目標**是儲存在物件空間之外的。

雖然成員函式並沒有存放在物件的儲存空間內,但從邏輯的角度,成員函式和資料一起封裝在乙個物件中,只允許本物件的成員函式訪問同一物件的資料。

這裡就有乙個問題,不同的物件呼叫同一段函式**,函式**是怎麼對不同物件中的資料進行操作的?

答:c++設立了this指標,呼叫某物件的成員函式時,this指標就指向該物件,成員函式訪問的就是該物件的資料成員。

物件成員的引用與結構體型別變數的引用類似。

乙個c++程式是由3部分組成的:(1)類宣告標頭檔案(字尾為.h);(2)類實現檔案(字尾為.cpp),它包括成員函式的定義;(3)類使用檔案(字尾為.cpp),即主檔案。

在系統提供的標頭檔案中只包括對成員函式的宣告,而不包括成員函式的定義。只有把成員函式的定義單獨放在另乙個檔案中,單獨編譯,才能做到不重複編譯。

在實際工作中,並不是將乙個類宣告做成乙個標頭檔案,而是將若干個常用的功能相近的類宣告集中在一起,形成類庫。類庫包括兩個組成部分:(1)包括類宣告的標頭檔案;(2)經過編譯的成員函式的定義,它是目標檔案.obj。

C 類與物件整理

類和物件 1.struct與class唯一區別 在於預設訪問許可權不同 struct為public,class為private 2.構造與析構函式 初始化和清理 建構函式 類名 函式可以有引數,可以發生過載 析構函式 類名 不可以發生過載,析構 將堆區開闢資料做釋放操作。3.類名加 建立乙個匿名物件...

C 概念溫習 2 類與物件的相關基礎知識

c語言幾乎是所有理工科學生進入大學學習接觸的第一門語言,不管之後大家分走向了哪些高階語言,最初都見識過這位程式語言屆的常青樹。c語言,以其華麗 難搞 的指標操作 對硬體的操控和接近彙編的執行效率在嵌入式開發領域獨樹一幟。c c語言的公升級款,從面向過程走向了物件導向。本文稟著溫故而知性的想法,複習一...

C 類和物件知識點整理2

includeusing namespace std class test test 第4題答案 序號輸出結果 對應指令 生成物件性質 生存週期 解釋說明 1test int test t1 20 區域性物件t1 函式結束後 t1的建構函式 2test int test t2 區域性物件t2 函式結...