第六章C 類的學習與總結

2021-08-19 08:26:22 字數 3155 閱讀 2260

一、基礎知識:

6.1定義格式:

class 類名

注意事項:

1、類成員可以為其他類物件

2、不能以類自身的物件作為本類的成員

3、類自身的指標和引用可以作為類的成員

4、以「;」結束類的定義

| 類具有封裝性,而結構體沒有,因為結構體成員為    公有。

|類行為屬性通過成員函式實現;

首先將成員函式宣告為函式原型,在類外具體定義成    員函式。

|成員函式的定義模式為:

返回值型別 類名::成員函式名(參數列)

|物件與類關係即為基本資料型別和變數之間的關係,

先定義類再定義類的物件。

|可通過原點訪問形式(物件名.公有成員)和指標訪問形式(物件指標變數名->公有成員)進行類成員的訪問。

|內聯函式可減少頻繁呼叫小子程式的執行時間開銷;

其形式為:

inline 函式原型

注:內聯函式僅在函式原型做一次宣告;

適用於只有1-5行小函式;

不可含有複雜結構控制語句,不可遞迴呼叫

|函式過載即為函式名相同,而引數不相同(型別不同、個數不同)的函式;

其用於處理不同資料型別的類似任務。

|引數個數相同

型別不同:

int main()

int max(int a,int b,int c)

6.2 建構函式與析構函式

|建構函式作用:

為物件分配空間;

對資料成員賦初值;

請求其他成員;

|建構函式名與類名相同;

|建構函式可以過載;

|建構函式無返回值,但有各種型別形參;

|析構函式用於取消物件的成員函式,進行物件消        亡時的清理工作;

|當無使用者定義建構函式和析構函式時,系統提供        預設版本的建構函式和析構函式,預設的建構函式      為空函式;

|析構函式無引數也無返回型別;

|用建構函式建立物件時,通過指標和new來實現         :類名 *指標變數=new 類名(實參表);

date *date1=date(1998,4,28);

即建立了物件(*date1)

|建構函式初始化成員倆種方法:

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

2、使用建構函式的初始化列表進行初始化;

例1:

class date

date(int dd, int mm)

}

例2:

class date

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

}

|類的初始化順序:

按照資料成員在類中的宣告順序進行初始化,

與初始化成員列表中的順序無關。

|過載建構函式,建構函式可進行過載,系統將根據引數匹配其中乙個。

class box;

box::box()

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

{}int box::volume()

int main()

|深複製:

通過乙個物件初始化另乙個物件時,不僅複製了 資料成員,也複製了資源的複製方式為深複製。

|深複製建構函式的特點:

定義:類名::類名([const]類名 &物件名);

person::person(const person& p0) //複製建構函式的實現

void printxy()

void constfun ( ) const

//非法

};

|靜態成員:

類成員冠以static宣告時,為靜態成員;

靜態成員為同類物件共享;

靜態成員函式與靜態資料成員協同操作;

|靜態成員函式的作用不是為了物件之間的溝通,而是為了

能處理靜態資料成員,可以在不依賴某個物件的情況下,

訪問靜態成員。

class a

|公有的靜態成員的訪問形式:

類名::靜態成員的名字;

物件名.靜態成員名字;

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

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

|靜態資料成員的宣告及初始化:

類外宣告

型別類名::靜態資料成員【=初始化值】;

#includeusing namespace std ;

class counter

void shownum() ;

…void friendfun( a * ptr , int x )

; void a:: memberfun( int x )

;

6.4 

|類的包含:

類的包含是程式設計中一種軟體重用技術,

即定義乙個類時,通過編譯器把另乙個「類」抄進來;

|建立乙個類的物件時,要先執行成員物件自己的構       造函式,再執行當前類的建構函式;

|成員物件的構造函式呼叫次序和成員物件在類中的      說明次序一致(宣告順序為:a1、b1、b2),與它      們在成員初始化列表中出現的次序無關(初始化            列表順序為      :b1、b2、a1);

析構函式的呼叫順序相反;

#includeusing namespace std;

class a

int a ;

}; class b

void out()

{ cout<<"aa = "《二、總結及心得:

類作為自定義資料型別,具有封裝性、繼承性、多型性的特點,建構函式對資料進行初始,析構函式對資料進行刪除的功能。其應用將主函式內容簡化,將程式分為多個模組,無疑有利於書寫長篇幅的系統,書寫系統時應該分模組進行調節,雖然相比於c語言而言,其看似更繁,但可使我們轉換思維方式,使我們擁有了「設計」的概念,類這一部分的學習對於本人這樣初次接觸的小白來說,無疑難如上青天,自知目前對類的認識不夠深刻,雖然學習途中困難重重,但我覺不會輕言放棄的!

第六章總結

6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...

第六章總結

為了解決連續計算的問題需求,而產生了迴圈控制結構。若重複次數已知,則為技術控制,若次數未知,結構為條件控制則為條件控制結構。迴圈結構分兩種結構,三種語句。一 當型迴圈,先判斷,再執行。while語句,滿足條件即執行迴圈。for語句。for語句為一種特殊的當型迴圈,也是最常用的迴圈結構。其結構為 初始...

第六章總結

一 迴圈控制結構 1 學過 for 迴圈 怎麼用 for 初始化表示式 迴圈控制表示式 增值表示式 初始化表示式 for 迴圈控制表示式 增值表示式 初始化表示式 for 迴圈控制表示式 感悟 for迴圈多用於計數控制的迴圈 如果知道迴圈次數,多用for迴圈 for語句中間的迴圈表示式,可以與迴圈變...