類與物件學習總結

2021-09-18 04:20:32 字數 2980 閱讀 1411

終於接觸到正式的c++內容了——類與物件。

程式設計習慣:

1、函式單一原則即乙個函式實現乙個功能

2、建構函式必須至少是兩個乙個帶參乙個不帶參,get set函式必須寫,其次寫功能函式

3、定義類的物件名首字母大寫,變數小寫,常量全大寫。

除錯技巧:類每增加乙個成員函式都要在主函式中進行測試,每增加乙個功能所有功能都試執行。

注:類(結構體)定義都以「;」結束。

一、類的定義

物件如何定義:

類名 物件名

x   obj1

類名 物件名(實參列表)

x   obj2(5)

資料成員的類內初始化:c++11 允許為資料成員提供乙個類內初始值,建立物件時,類內初始值將用於初始化資料成員,沒有初始值的成員將被預設初始化,資料成員類內初始值只能放在等號「=」右邊,或者放在花括號「{}」裡,不能使用圓括號「()」 。

例如:

struct salesdata; 

salesdata s; //productno 初始化為空串,price 和unitsold 都初始化為0

s .print(); //輸出「:0 0 0」

成員函式的類外定義:成員函式直接在類內定義,也可以在類外定義。

例如:

struct salesdata;

//成員函式的類外定義

double salesdata::totalrevenue()

void salesdata::read()

void salesdata::print()

;void a::func() //func是成員函式,可以訪問a 的任何成員

int main()

;

this指標:

每個成員函式都有乙個隱含的引數,指向接收訊息的物件,稱為this指標,x類的this指標型別是x*。

this指標是乙個常量,含有當前實施呼叫的物件的位址,不能改變this指標的值,也不能取this指標的位址(this是乙個位址)。

this指標在成員函式中的用途:

1、區分與資料成員同名的變數

2、返回當前物件

3、取得當前物件位址

訪問器和修改器:

將資料成員限定為private,並提供public成員函式來對其進行訪問,這種成員函式被稱為訪問器和修改器。

與直接訪問資料成員相比,訪問器和修改器更好地體現了封裝性,可以在修改器中進行資料有效性的驗證,從而確保物件不會因外部修改而處於無效的狀態

訪問器和修改器常以一對getx()和setx() 函式的形式出現

class rectangle 

void setwidth(double newwid)

函式訪問類的私有資料會引起編譯錯誤,解決方法:1、公有化但破壞封裝性2、友元 friend也會破壞封裝性盡量避免使用(在宣告友元時要遵循一條規則:友元必須在被訪問的類中宣告)。

注:運算子過載時可以用友元,其餘情況不使用

三、建構函式和析構函式:

建構函式:

1、 建構函式的名字和類名字相同

2、 沒有返回型別(不是返回void 型別)

3、 在建立物件時被自動呼叫,負責初始化物件

引用成員,const 資料成員,類型別的資料成員不能使用賦值的方式提供初始值,對於這種可以用初始化列表:建構函式(參數列) : 初始化列表。成員初始化的順序與它們在類定義**現的順序一致,初始化列表中初值排列的順序不影響。

class x 	//先初始化a,再用a初始化b

};

析構函式:

1、 析構函式負責在物件生存期結束時返回相關資源和自動釋放資源(銷毀物件)

2、 析構函式的名字是類名字前加波浪線「~」

3、 析構函式沒有返回型別,也沒有任何引數

4、 析構函式不能過載,只能為乙個類定義唯一乙個析構函式

四、const成員:const 成員的值在物件的整個生存期中都不會改變,const物件不能修改。

定義:返回型別 成員函式名(參數列) const

1、只有const 的成員函式才可以被const 物件呼叫

2、const 物件不能呼叫非const 成員函式

3、非const 物件可以呼叫const 成員函式

4、const 成員函式中不能修改類的資料成員

5、const 成員函式中不能呼叫其他非const 成員函式

const的用法小結:1、定義常量2、限定指標和引用3、限定函式引數4、限定函式返回值5、限定物件6、限定資料成員7、限定成員函式

五、static 成員:類成員特點:屬於整個類,不專屬於某個物件

1、static成員用於某個類的所有物件都需要訪問乙個共享的資料

2、static資料成員在類外初始化,使用類名字限定int object::count = 0;定義類之後馬上初始化(不屬於任何物件,無法用物件初始化)

3、static成員只能定義一次

4、在類的成員函式中可以直接訪問static資料成員

5、在非成員函式中通過兩種方式訪問static資料成員,物件名.成員名或物件名->成員名

static用法小結:

1、 定義函式內部的靜態區域性物件,改變物件的儲存類別

2、 限制名字的可見性

3、 限定資料成員

4、 限定成員函式

總結了這些近期所學的內容,沒有像上學期一樣做題,有的概念還是不了解,只能找一些例子來幫助理解,多看關於類的程式,把老師的demo好好研讀,在csnd上多搜尋一些程式,努力認真學吧。

類與物件學習總結

一 1.類的定義 1 類是對具有相同屬性和行為的一組物件的抽象與統一描述。是使用者自定義的資料型別 2 類的定義包括行為和屬性兩個部分。3 屬性以資料表示,行為通過函式實現。2.c 類定義的格式 class 類名 各成員函式的實現 3.注意事項 1 類的成員可以是其他類的物件,但不能以類自身的物件作...

類與物件學習總結

在大一上學期,我學習了些簡單的c語言程式,不過當時只是根據看到的題目寫出演算法來解決問題。新學期學習了類與物件之後,對程式有了新的體會。在學習類與物件時,了解了寫程式的兩種方法,一是面向過程。二是物件導向。其中面向過程我認為就是直接通過主函式或者借用其他函式,在主函式中直接寫演算法的程式。比如 he...

類與物件學習總結

類與物件 一 定義類和物件 1.一般形式 class 類名 定義類時首字母要大寫 public 公有段資料成員和成員函式 protected 保護段資料成員和成員函式 private 私有段資料成員和成員函式 此處分號不可省略!private 用於宣告私有成員。私有成員只能在類中可見,不能在類外或派...