過程化語言
一、函式
1、過載函式需要在引數個數、引數型別或引數順序上有所不同。
2、預設函式從右往左逐漸定義
3、內聯函式不允許有複雜的結構控制語句。遞迴函式不能用來作內聯函式
4、函式的返回值時將值賦予乙個生命期極短的臨時變數,在完成返回值賦值後,該臨時變數銷毀。
5、匹配過載函式的順序:尋找嚴格的匹配
->
用過內部轉換需求乙個匹配
->
通過使用者定義的乙個轉換尋求匹配。
二、陣列
1、二維陣列可以通過將為進行順序操作。此時傳遞的是二維陣列首元素位址。
三、引用
1
、引用在宣告時必須初始化,但它不佔記憶體空間。
2、不許對
void
型別的元素、陣列和
null
進行引用。
3、不許引用乙個非返回引用的函式的返回值。
4、而返回引用的函式返回時不產生臨時變數,但它返回的須是乙個全域性變數或靜態變數,否則返回值會在函式結束後銷毀造成無值返回。
5、返回引用時的函式表示式可以作為左值。
6、可以通過加
const
防止修改所引用單元的值。形式為:
形參:const int &a
,實參為:
a
物件導向程式設計
一、堆與拷貝建構函式
1
、拷貝建構函式的形參必須是引用方式!
2、當類需要析構函式需要析構資源(比如堆資源),則它也需要乙個拷貝建構函式。
3
、建構函式用於型別轉換,使用者告知的方式是定義乙個帶引數的建構函式,而只嘗試含乙個引數的建構函式。
二、類的派生與繼承
1、派生類的構造順序是:先用它基類的建構函式構造它的基類成分,再用它自己的建構函式構造它自身成分。
2、若想把類作為函式的形參,接受可能傳遞的基類和其派生類,則這個形參必須是基類型別。這也就是遲後聯編,也叫多型性,是物件導向程式設計語言的特性之一。其他兩個是封裝性和繼承。這個基類形參可以實現基類和派生類宣告的基類虛函式。、
3、若是使用虛函式,必須在基類的函式宣告中加
virtual
,否則在傳參呼叫派生類的函式時,會被認為是基類的。而只有在加上
virtual
後,編譯器才會進行遲後聯編。
4、虛函式要求:函式名相同、函式型別相同、返回型別相同。否則即使加了
vitrtual
也不被認為是遲後聯編。在
vc++
中,即使是返回基類指標的成員函式也要求派生類返回的是基類的。
5、抽象類只是被用於繼承,它至少有乙個純虛函式,即標記為不具體實現的成員函式,而由抽象類的派生類對它進行不同的定義。抽象類不能有例項。純虛函式是為派生類在基類中保留的乙個位置。假如有個指向抽象類的指標,進行乙個沒在抽象類中宣告的函式,則無法進行。則在繼承中普遍存在,即基類指標只能操作基類成員,和識別派生類中的虛函式。
三、多重繼承
1
、多個類繼承乙個類,可在繼承中加
virtual
,表示「如果還沒有
a類,則加入乙個
a的拷貝,否則就用已有的那個」,這樣各以防止多重繼承類的模糊性。
2、多重繼承的構造順序是:虛擬繼承類
->
非虛擬繼承類
->
成員物件
->
類的建構函式。3、
訪問方式
繼承型別
public
protected
private
public
public
protected
private
protected
protected
protected
private
private
private
private
private
基類中的
private
成員不可被繼承。而
protected
和private
派生的不是之類,因為它們所派生的類不能做基類能做的事,但可以在其
public
中呼叫其基類的函式完成呼叫。
四、運算子過載
1
、過載的形式:返回型別
operator
運算符號(引數說明);。2、
.::. *. ->? :
不可被過載。3、
operator +
由值返回是因為它需要乙個臨時空間存放結果,如果用引用返回則不產生臨時空間,無法存放結果。
而operator ++
由引用返回是因為它修改了自己的引數,需要返回引用以不產生臨時變數而直接修改本身。若用臨時變數返回的話,臨時變數得到修改,而它本身卻沒能得到完全的修改。
VC程式設計經驗彙總 一
1.視窗最大化 最小化的實現 當我們不能用標題欄的最大化 最小化及恢復按鈕而又需在其他的地方實現這些功能,可以在指定的訊息處理函式裡新增 windowplacement wndpl windowplacement pwndpl pwndpl wndpl getwindowplacement pwnd...
VC程式設計經驗彙總 二
6.如何建立可伸縮的對話方塊 在進行對話方塊的設計時,有時候我們需要設計可伸縮的對話方塊,當使用者按下某個按鈕時彈出或隱藏對話方塊的下半部分。1 首先在對話方塊中建立乙個控制項把 id設為 idc divider type 設定為矩形,color 設定為黑色,並將其設定為一線狀,拖放在適當的位置做為...
VC程式設計經驗彙總 一
1.視窗最大化 最小化的實現 當我們不能用標題欄的最大化 最小化及恢復按鈕而又需在其他的地方實現這些功能,可以在指定的訊息處理函式裡新增 windowplacement wndpl windowplacement pwndpl pwndpl wndpl getwindowplacement pwnd...