C 入門筆記 物件

2021-09-03 10:00:32 字數 1726 閱讀 7018

類(class)是乙個模型,當我們建立例項的時候,也就是物件本身。可以理解成,類是乙個設計藍圖,決定了乙個物件將是什麼樣的(具備什麼樣的功能,屬性)而物件是類的乙個例項化。

oop過程(物件導向的過程)的第一步是先建立乙個類,而每個類跟變數一樣都有乙個名字,所以我們就從如何宣告乙個類開始說起:

class mynote;

//分號不要忘記 可以聯想到結構體的宣告 雖然很類似 但差別還是很大 結構體內部只宣告變數 而類裡面是變數和函式

這就建立了乙個類,雖然什麼也幹不了,但他是乙個成功的開始!!

注意:類名的第乙個字母採用大寫是一種習慣的標準,但不是硬性規定。如果非小寫那也沒辦法

在類的宣告末尾有乙個分號,這一點就跟c語言裡的結構體很相似了

類由變數和函式組成,類的例項化物件將使用那些變數來儲存資訊,呼叫那些函式來完成某些操作。(在類裡面常會看到一些專門的術語:類裡的變數叫做屬性,函式稱為方法,本質都是一樣的)

例子:先宣告一輛車的一些簡單屬性,例如顏色,引擎,油量,輪子個數等等,

class car;

//public 在後面的筆記中會有

現在為類定義一些方法,其實也就是定義一些函式,建立個人函式也是兩個步驟的過程:先建立函式的原型(宣告),再描述該函式本身實現的過程。 給類新增方法如出一轍:

-先在類的宣告裡建立乙個方法的原型

-稍後再實現這個方法

class car;
現在我們的car類有了乙個名為fill_tank的方法,他只有乙個輸入引數,不需要任何的返回值。但是我們只有他的原型(宣告),要想使用它,我們還需要對這個函式進行正式的定義(告訴系統如何去實現它),方法的定義通常安排在類宣告的後面。

#includeclass car;

void car::fill_tank(float liter)

int main()

我們發覺作用域解析符(::),作用是告訴編譯器這個方法存在於何處,或者說是屬於哪乙個類。例如前面講過namespace的用法,其實namespace是乙個偷懶的方法,不提倡使用,因為命名是有作用域區分的,如果一開始就將命名空間定為std,那麼以後所有的命名都是在std裡了。

針對以上說的這些可以進一步將這個類進行擴充套件,就不贅述了

物件導向程式設計技術(object-oriented programming)可以說是面向過程技術(producedural programming)的替代品。物件導向技術關注的是對資料進行怎樣的處理,面向過程技術關注的是對資料進行處理的過程。

c++允許在類裡宣告常量,但不允許對他進行賦值。

class car;
繞開這一限制的方法就是建立乙個靜態常量,但不常用

class car;
類似於結構的情況,可以在宣告某各類的同時建立一些該類的物件,這種做法在c++裡是允許的,但是作為一種良好的程式設計習慣,應該避免這種做法,一般不把類的宣告和定義寫在一起。

class carcar1,car2;
最後假設有以下**:是把乙個物件賦值給另乙個同類的物件將會自動使他們同名的屬性有同樣的值。

car car1,car2;

car1.setcolor("white");

//.......對car1物件進行各種操作

car2 = car1;

C 快速入門筆記 物件導向程式設計

類定義 class box 物件定義 box box1 宣告 box1,型別為 box box box2 宣告 box2,型別為 box 用 運算子訪問資料成員 在類的外部使用範圍解析運算子 定義函式 double box getvolume void public 公有成員在程式中類的外部是可訪問...

《C 入門經典》學習筆記(物件導向程式設計)

物件導向程式設計 物件導向程式設計 物件導向程式設計 oop 方法提供非常大的多樣性,大大增加 的重用機會 物件物件就是oop應用程式的乙個組成部件 1 屬性和字段 屬性和字段可以訪問物件中包含的資料 包含在物件中的不同資料統稱為物件的狀態 欄位和屬性都可以輸入,儲存資訊 屬性不能直接訪問資料,但能...

c 入門筆記 從物件到純虛構造

c 1.使用乙個已經建立完畢得物件來初始化乙個新物件 2.值傳遞得方式給函式引數傳值 3.以值方式返回區域性物件 1.預設建構函式 無參。函式體空 2.預設析構函式 無參。函式體空 3.預設拷貝建構函式,對屬性進行拷貝 1.淺拷貝帶來得問題就是堆區得記憶體重複釋放 2.淺拷貝得問題要利用深拷貝進行解...