關於「類」的學習總結

2021-09-18 02:37:39 字數 2052 閱讀 2732

首先,在關於類的學習中,我們首先要明白 什麼是「類」,怎麼去定義,如何去使用。

類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為「方法」。實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者「幹什麼」,而實現部分是告訴使用者「怎麼幹」。

類的定義格式一般如下:

class類名識別符號

;

說明:

1.class是定義類的關鍵字,是種識別符號。一對花括號內是類的說明部分(包括前面的 類頭)說明該類的成員。

2.類的成員包含資料成員和成員函式兩部分。

3.從訪問許可權上來分,類的成員又分為:公有的(public)、私有的(private)和保護的(protected)三類。

★在定義是還應該注意到以下幾點內容:

在類體中不允許對所定義的資料成員進行初始化。

類中的資料成員的型別可以是任意的,包含整型、浮點型、字元型、陣列、指標和 引用等。也可以是物件。另乙個類的物件,可以作該類的成員,但是自身類的物件是不可以的,而自身類的指標或引用又是可以的。當乙個類的物件用為這個類的成員時,如果另乙個類的的定義在後,需要提前說明。

運算子過載可以通過非成員函式(友元函式)和成員函式進行過載。但是賦值=、函式呼叫()、下標運算、指標訪問成員->只能使用成員函式進行過載

友元函式過載運算子友元函式、友元類、友元成員函式友元函式和類的成員函式具有相同的訪問許可權,但它不是成員函式不能使用成員運算子呼叫。

預設建構函式如果沒有提供任何函式,c++ 將建立預設建構函式。如果定義了建構函式,c++ 將不會定義預設建構函式。

友元簡介

友元有三種:

(1)友元函式

(2)友元類

(3)友元成員函式

通過讓函式成為友元,可以賦予該函式與類成員函式相同的訪問權相。

上面例子中,左側的運算元是呼叫物件,也就是說:

time a,b;

a = b*2.75;//allow

a = 2.75*b;//not allow,because 2.75 not time

為了解決這種情況,使用非成員函式

time operator*(double m, const time & t);
但是非成員函式不能訪問私有資料,那麼必須宣告為友元,才可以訪問。

friend time operator*(double m, const time & t);//定義的時候不需要friend
a.雖然operator * () 函式是在類宣告中宣告的,但它不是成員函式,因此不能使用成員操作符來呼叫。

b.雖然operator * ()函式不是成員函式,但它與成員函式訪問許可權相同。

一建構函式

1.建構函式在建立物件時會被自動呼叫負責初始化物件

2.建構函式的名字和類的名字相同,沒有返回值型別(是沒有返回型別,並不是返回void型別)

3.建構函式的參 數通常為資料成員提供切始值

4.建構函式的引數通常為資料成員提供初始值

5.建構函式可以過載二構造的數的初始化列表在尖中,有些成員時不能使用賦值的方式提供初始值例如:引用成員,const資料成員, 類型別的資料成員

對該情況的特殊句法稱為構造再數初始化列表

成員1 (初始值1) [成員2 (初始值2),…]

初始化列表位於建構函式的參數列之後,函式體之前

建構函式(參數列) :初始化列表(函式體}

class x

};

二.委託建構函式

委託建構函式所使用所處類的其他建構函式執行自己的初始化過程,把部分或全部職責託給了其他的建構函式

語法形式:

classname (參數列):classname(參數列)

三.析構函式

析構函式主要用來放棄在類物件的建構函式或者生存期中獲得的資源

例如釋放互斥鎖或者歸還new分配的空間

如果類中沒有定義析構函式,編譯器在需要時會自動合成乙個析構函式。

關於類的this指標總結

this指標其實就是在例項化乙個物件後產生的指標,並且是指向物件本身。也就是說,即使沒有寫上this指標,編譯器在編譯的時候也會加上this指標。它作為非靜態成員函式的隱含形參,對各成員的訪問可以通過this來實現。它的特點可以概括為 1 this只能在成員函式中使用。而在全域性函式或者靜態函式中不...

類的學習總結

一 類 1.概念 類是對具有相同屬性和行為的一組物件的抽象與統一描述。是使用者自定義的資料型別 屬性以資料表示,行為通過函式實現 c 中,類的名字就是使用者自定義的型別的名字。可以象使用基本型別那樣來使用它 2.格式 class 類名 類名的首字母大寫 類的定義以分號結束,不可省略 注 1 資料成員...

關於Mat的類的總結

scalar定義的事顏色,彩色,對應rgb三個通道,所以形式為scalar r,g,b 注意是首字母大寫,還有括號。還有一種用法是scalar all 0 全部都是0,或者其他,自己改變量值 size是尺寸,顧名思義就是長和寬,所以兩個引數。一半兩個以上資料就要括號。c 有個函式求位元組的事size...