類的學習總結

2021-08-19 06:47:59 字數 3880 閱讀 4774

一.

1.概念:類是對具有相同屬性和行為的一組物件的抽象與統一描述。是使用者自定義的資料型別

(屬性以資料表示,行為通過函式實現)

c++中,類的名字就是使用者自定義的型別的名字。可以象使用基本型別那樣來使用它

2.格式

class 

類名——類名的首字母大寫

;(類的定義以分號結束,不可省略)

注:(1 .

資料成員私有化——只在類中可見

成員函式公有化——類中,類外均可見

(2.如果私有成員放在第一段,則可以省略關鍵字private

(3.類的任何成員都必須指定訪問屬性

類的訪問屬性有:

public

protected

private

(4.類的成員可以是其他類的物件(稱為類的組合),但不能以類自身的物件作為本類的成員,而類自身的指標和引用可以作為類的成員。

(5.在類的定義中不能對資料成員進行初始化

(6.類中的資料成員可以是c++語法規定的任意資料型別

3.成員函式

一般將成員函式宣告為函式原型,在類外具體實現成員函式。

類外定義格式:返回值型別

類名::

成員函式名

(參數列)

簡單成員函式可以在類中定義

成員函式重點是對資料成員做操作

二.物件

物件是類的例項或實體。類與物件的關係,如同c++基本資料型別和該型別的變數之間的關係。

格式:類名

物件名1

,物件名2,

…,物件名n;

:(1.必須在定義了類之後,才可以定義類的物件。

(2.物件必須定義在主函式中

1. 物件成員的訪問包括:

圓點訪問形式:物件名

.公有成員

指標訪問形式:物件指標變數名

->

公有成員

例:

#includeusing namespace std;

class tclass

int main()

——是乙個空函式

預設析構函式若沒有顯式定義析構函式,則系統自動生成乙個預設形式的析構函式。

格式:類名

::~類名

(){}

1.建構函式

建構函式名與類名相同

建構函式需定義兩個以上。乙個帶參的,跟著乙個不帶參的

建構函式只在建立物件是呼叫一次

(1)—

利用建構函式建立物件的兩種方法

1  利用建構函式直接建立物件.其一般形式為:

類名物件名

[(實參表

)];這裡的「類名」與建構函式名相同,「實參表」是為建構函式提供的實際引數。

2利用建構函式建立物件時,通過指標和new來實現。其一般語法形式為:類名*

指標變數

= new

類名[(

實參表)];

例如:date *date1=new date(1998,4,28);

就建立了物件(*date1)。

(2)—

建構函式初始化成員有兩種方法

1.使用建構函式的函式體進行初始化

class date

date(int dd, int mm)

}

date(intdd, int mm) }

2.

使用建構函式的初始化列表進行初始化格式:

funname(

引數列表

):成員名

1(形參名

1),成員名

2(形參名

2),成員名

n(形參名

n) 初始化列表

class date

date(intdd, int mm): d(dd),m(mm)

}

(3)

—必須使用引數初始化列表對資料成員進行初始化的幾種情況

資料成員為常量

資料成員為引用型別

資料成員為沒有無參建構函式的類的物件

—(4)—類成員的初始化的順序

按照資料成員在類中的宣告順序進行初始化,與初始化成員列表中出現的順序無關—(

5)—建構函式的過載

class box;

box::box()

box::box(int h, int w,intl):height(h),width(w),length(l)

{}int box::volume()

int main();

—(7)—建構函式的呼叫

在生成物件時呼叫建構函式。(建構函式一般被定義為公有成員)

classperson

unsigned getage( )

private:

unsigned age;

};intmain()

;

類外進行靜態資料成員的宣告

格式:型別

類名::

靜態資料成員

[=初始化值

];靜態成員

靜態成員函式

定義格式

static 型別名 靜態成員名

static 返回型別 靜態成員函式名(參數列);

訪問格式

公有訪問許可權的靜態成員

呼叫公有靜態成員函式

類名::靜態成員的名字

物件名.靜態成員名字

物件指標->靜態成員的名字

類名::靜態成員函式名(實參表)

物件. 靜態成員函式名(實參表)

物件指標->靜態成員函式名(實參表)

在靜態成員函式內部,直接訪問

3.     友元

在類體中用friend對其(函式b)進行宣告,此函式就稱為本類(類a)的友元函式

:1.友元函式(函式b)可以訪問這個類(類a)中的私有成員

2.這個函式可以是不屬於任何類的非成員函式,也可以是其他類的成員函式

#include using namespace std;

class car;

class boat

friendvoid display_weight(boat &boat ,car &car);

};

十.類的包含(類的組合)

當乙個類中含有已經定義的類型別成員,帶引數的建構函式對資料成員初始化,須使用初始化語法形式

格式:建構函式

( 形參表

) :

物件成員1(

形參表) , …,

物件成員n (

形參表)

十一.物件陣列

所謂物件陣列是指每一陣列元素都是物件的陣列。

格式 :類名

陣列名[

下標表示式

];物件陣列的初始化(無法通過初始化成員列表對物件陣列進行初始化)

1.    當物件陣列所屬的類中包含帶參的建構函式,可用初始化列表完成物件陣列的初始化2.    當物件陣列所屬的類中包含無參的建構函式,也可以先定義,再給每個陣列元素賦值

3.    當物件陣列所屬的類中包含單個引數的建構函式,可簡寫

類部分的學習總結

學習完類的章節後,有些許筆記與心得予以分享與記錄 本學期我們正式由面向過程轉向物件導向程式設計。在物件導向學習中,我們首先學習了類 是對具有相同屬性和行為的一組物件的抽象與統一描述,是使用者自定義的資料型別。然而類的定義包括兩個部分 1.行為 通過函式實現 2.屬性 以資料表示。同時,我們學到了一種...

關於「類」的學習總結

首先,在關於類的學習中,我們首先要明白 什麼是 類 怎麼去定義,如何去使用。類的定義格式一般地分為說明部分和實現部分。說明部分是用來說明該類中的成員,包含資料成員的說明和成員函式的說明。成員函式是用來對資料成員進行操作的,又稱為 方法 實現部分是用來對成員函式的定義。概括說來,說明部分將告訴使用者 ...

c 學習 類的設計總結

1 編譯器生成的成員函式 1 預設建構函式 這個不做詳細的介紹,相信的大家已經很了解了。2 複製建構函式 classname const classname 在下述情況下將使用複製建構函式 a 將新的物件初始化為乙個同類的物件 b 按值就物件傳遞給引數 c 函式按值返回物件 d 編譯器生成臨時物件 ...