一、基礎知識:
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語句中間的迴圈表示式,可以與迴圈變...