函式指標和成員函式指標的乙個公共用途是,將它們儲存在函式表中。函式表是函式指標的集合,在執行時從中選擇給定呼叫。
對具有幾個相同型別成員的類而言,可以使用這樣的表來從這些成員的集合中選擇乙個。假定擴充套件screen類以包含幾個成員函式,其中每乙個在特定方向移動游標:
class screen
;
我們可能希望定義乙個move函式,它可以呼叫這些函式中的任意乙個並執行指定的動作,為此,在screen中增加乙個static成員,該成員是游標移動函式的指標的陣列。
class screen
; screen & move ( directions );
};
名為menu的陣列將儲存指向每個游標移動函式的指標,將在對應於direction中列舉成員的偏移位置儲存那些函式,move函式接受列舉成員並呼叫適當函式:
screen & screen::move( directions cm )
呼叫move時,傳給它乙個列舉成員,指出向哪個方向移動游標:
screen myscreen;
myscreen.move(screen::home);
myscreen.move(screen::back);
剩下的是定義和初始化表本身:
screen ::action screen ::menu =
;
成員函式 虛函式 this指標
1 成員函式的實現機制和普通 全域性 函式沒有本質區別,對編譯器而言,經過名稱處理以後 在函式名前加上命名空間 類名 乙個成員函式就是普通函式了,在編譯後的 區域有確定的函式體和入口位址。最大的差別在於發生呼叫時,對於成員函式,編譯器會隱含語句push this,其中this指標指向物件的位址,這就...
類成員函式指標
類成員函式指標 類的成員函式分為兩種,一種是靜態函式,另外一種是非靜態函式。例如 class x display 為靜態函式,getvalue即為非靜態函式。兩種函式在使用的時候是不一樣的。靜態函式可以直接由類名來呼叫,而非靜態函式則必須通過某乙個物件來呼叫,例如 x display x x x.g...
類成員函式指標
類成員函式指標的基本用法 1。宣告 已知簡單的類宣告如下 class screen screen public screen forword int num 1 我們可以這樣宣告乙個指向back成員函式的指標 screen screen back fun int para screen back 其...