C 物件導向的程式設計的相關概念(一)

2021-08-21 06:44:02 字數 2447 閱讀 3278

1、物件和類概念

物件:任何乙個物件都應該具備兩個要素:屬性、行為。

在c++中每個物件都有資料(體現了『屬性』)和函式(用來對資料進行操作,以實現某些功能)兩部分組成。

類:具有共性的實體的抽象。

類是物件的抽象,不占有記憶體。物件是類的特例,即類的具體表現形式,占有儲存空間。

c++使用

class

關鍵字用於定義類,和

struct

關鍵字的用法相同。只不過

class

關鍵字預設的型別為

private

2、物件導向的三大特性:

封裝、繼承、多型

封裝:將方法和資料封裝在類裡面,可以根據訪問限定符的使用保證資料的安全性,隱藏了方法的實現細節,也方便使用。封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是通過外部介面以及特定的訪問許可權來使用類的成員。

繼承:對已有類增加屬性和功能或進行部分修改來建立新的類,是實現**的復用的重要手段,繼承是型別之間的關係建模。繼承可以使得子類具有父類的各種屬性和方法,而不需要再次編寫相同的**,在令子類繼承父類的同時,可以重新定義某些屬性,並重新某些方法,即覆蓋父類的原有屬性和方法,使其獲得與父類不同的功能,繼承是指乙個物件直接使用另乙個物件的屬性和方法。

多型:在物件導向的程式裡面,同乙個訊息被不同的物件接受後可以導致不同的行為,是介面的多種不同的實現方式,極大的提高了**的重用

。多型性,允許將子類型別的指標賦值給父類型別的指標,多型性在c++中是通過虛函式實現的。虛函式就是允許被其子類重新定義的成員函式。而子類重新定義父類虛函式的做法,稱為「覆蓋」,或者稱為「重寫」。子類重寫父類中虛函式時,即使不用

virtual

宣告,該過載函式也是虛函式。

抽象:表示同一類事務的本質。

3、物件的引用

a. 同一類的物件可以相互賦值。

b. 在乙個類中至少有乙個公用的成員函式作為對外的介面。公用成員函式是使用者使用類的公用介面,或者類的對外介面。外界只能通過公用成員函式來實現對類內的私有函式進行操作。

c. 當類中有指標且有動態記憶體分配時,不要隨便賦值,有可能會出現問題。

d. ::是作用域的限定符,宣告函式或者變數是屬於哪個類的。

e. 內建成員函式:c++對一般的內建函式需要使用關鍵字

inline

宣告,在呼叫函式時,並不是真正的執行呼叫的過程,而是把函式的**嵌入程式的呼叫點,大大減少呼叫函式的時間開銷。對於類內定義的成員函式,可以省略關鍵字

inline

,c++

預設類內的成員函式為內建函式。但是如果陳元函式在類體外定義時,系統並不預設為內建函式,需要在宣告與定義的時候加上

inline

關鍵字說明(必須將類定義和成員函式的定義放在同乙個標頭檔案中或者解除安裝同乙個原始檔中,否則編譯無法進行置換)。

f. c++對類的每個物件所占有的儲存空間只是該物件的資料成員所占有額儲存空間,而不包括函式**所占有的儲存空間,與成員函式無關。而這些物件的成員函式對應的是同乙個函式**段。

g. 不管成員函式在類內定義還是類外定義,不論是否用inline宣告,成員函式的**段的儲存方式是相同的,都不占用物件的儲存空間。

inline

函式只影響程式的執行效率,而與成員函式是否占有物件的儲存空間無關。

h. 物件成員引用的方式:

1 通過物件名與成員運算子訪問物件中的成員

---------

物件名.

成員名---------stud.num

2. 通過指向物件的指標訪問物件的成員-------------指標—

>

成員名-----------------p

—>num

3. 通過物件的引用來訪問物件的成員。

i. 類的公用介面與實現分離:

通過成員函式對資料進行操作稱為類的功能實現,為了防止使用者任意的修改公用成員函式,改變對資料進行的操作,往往不讓使用者看到公用成員函式的源**,使用者只能接觸到公用函式的目標**。類內被操作的資料是私有的,類的功能實現細節是對使用者遮蔽的。這種實現稱為私有實現。這種類的公用藉口與實現分離形成了資訊遮蔽,使用者接觸到的是公用介面,而不能接觸到被遮蔽的資料與實現的細節。

好處:(1)如果要修改或擴充類的功能,只需修改該類中有關的資料成員與成員函式,成語中類以外的部分可以不必修改。(

2)編譯時發現勒種的資料讀寫有錯,不必檢查整個程式,只需要檢查本類中訪問的這些資料的少數成員函式。

j. 把類的宣告放在指定的標頭檔案中,使用者要使用該類,只需要把有關的標頭檔案包含進來即可。不必再程式中重複書寫類的宣告,以減少工作量,節省篇幅,提高程式設計的效率。

k. 乙個c++程式是有

3部分組成,(

1)類宣告的標頭檔案(

.h)。(

2)類實現檔案(

.cpp

)包含類成員函式的定義。(

3)類的使用檔案(

.cpp

)即主函式檔案。

C 物件導向程式設計的重要概念

1.1 類與物件 物件 object 是類 class 的乙個例項 instance 如果將物件比作房子,那麼類就是房子的設計圖紙。所以物件導向程式設計的重點是類的設計,而不是物件的設計。類可以將資料和函式封裝在一起,其中函式表示了類的行為 或稱服務 類提供關鍵字public protected 和...

物件導向程式設計的概念

物件和物件導向的概念 萬物皆物件 物件導向指以屬性和行為的觀點去分析現實生活中的事物 物件導向程式設計指先以物件導向的思想進行分析,然後使用物件導向的程式語言進行表達的過程 物件導向程式設計是軟體產業化發展的需要 理解物件導向的思想精髓 封裝 繼承 多型 至少掌握一種程式語言 類和物件的概念 物件主...

C 的物件導向程式設計一

c 的物件導向程式設計一 類的學習筆記 c 不同於c的乙個重要特性便是它具有物件導向的程式設計思想。那麼談到了物件導向,那從基礎上就得先談資料的封裝了,也就是我們常說的類了。細節的學習應該可以從書上來學。參考書籍 c primer 第4版 這個學習筆記我想記錄一些關於在設計乙個類時所需要知道的事情。...