類成員指標

2021-05-27 12:47:55 字數 1119 閱讀 8588

類成員指標一般很少用到,使用類成員的指標與普通指標的區別在於,需要在類成員指標前面的加上類限定符,以指明是哪個類的成員指標。同樣,在初始化指標時,也只能用相應類的相應型別的成員對指標進行初始化。

成員指標的應用舉例

當乙個類有多個性質相同且型別相同的函式成員時,可以使用函式表來進行函式呼叫,產生用同一函式使用不同引數來達到不同操作的效果,而實際上是呼叫了不同的函式來實現的。下面給出這樣的乙個例子,方便讀者有乙個感性的認識:

#

include

<

iostream

>

using

namespace

std;

class screen

screen& forward(

)screen& back(

)screen& up(

)screen& down(

)// function table

typedef screen&

(screen:

:*action)()

;static action menu;

// specify which direction to move

enum directions

;screen& move(directions);}

;screen:

:action screen:

:menu=

;screen& screen:

:move(directions dirc)

int main(

)

上面例子表明了類成員函式指標比較有優勢的地方,可以擴充套件到用map代替上面的陣列,實現高效的字串和函式的繫結~~

另外由於類成員函式指標匹配條件非常嚴格,所以不建議用在比如執行緒入口函式等地方,往往會報不少錯誤。當然,如果符合下面三個條件也可以消除編譯錯誤。

函式成員的指標與普通函式指標相比,也多了類限定符。由於類成員函式還有可能是const,所以const也成為成員函式指標宣告的一部分。也就是說,函式成員的指標必須在三個方面與它所指函式的型別相匹配:

(1)函式形參的型別和數目;

(2)返回型別及是否為const函式;

(3)所屬類的型別。

類成員指標

看到深度探索c 物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下 templatechar access order data type1 class type mem1,data type2 class type mem2 用以下程式測試 class po...

類成員指標

首先 函式指標是指向一組同型別的函式的指標 而類成員函式我們也可以相似的認為,它是指向同類中同一組型別的成員函式的指標,當然這裡的成員函式更準確的講應該是指非靜態的成員函式。前者是直接指向函式位址的,而後者我們從字面上也可以知道 它肯定是跟類和物件有著關係的。typedef int p int,in...

類成員指標

看到深度探索c 物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下 templatechar access order data type1 class type mem1,data type2 class type mem2 用以下程式測試 class po...