如何使用類的成員方法指標?

2021-04-25 19:52:08 字數 588 閱讀 3242

在kylib裡有大量使用類成員方法指標**,即所謂的**事件方法。例如:

**事件的方法指標需要c++編譯器支援,至少vc的不同版本及gcc編譯器都支援。

在vc6和vc2003中設定方法指標相對較寬鬆,vc2005之後就很嚴格了,如下:

fdemo.oninitialize.method = (tkyfmtmemevent::tdoformat)&tdemo::doformat;

這行**都被不同版本vc編譯器支援,但如下**就只能被vc6、vc2003支援:

fdemo.oninitialize.method = (tkyfmtmemevent::tdoformat)doformat;

其實,類方法呼叫原理很簡單,若知道如何使用c語言模擬類實現就知道怎麼回事了,只是這個工作由編譯器來做罷了。不過不是什麼方法都可以呼叫的,如:靜態方法就只能當做函式指標來用,而過載方法、虛方法等等是不可靠的,所以最好使用普通的類方法指標。

呼叫方法與呼叫函式的區別是在呼叫方法時,編譯器把當前物件的指標當做第乙個引數傳入,其它引數的傳遞與函式沒有區別,也就說,這為提供**事件的方法指標提供一條方便之門。

方法指標不能濫用,用好它可以使你的視野更加開闊!

類的成員函式指標的使用方法

函式指標主要的目的是實現與運用相互分離,類的成員函式封裝在類裡面,執行需要相應的物件來呼叫,所以在呼叫這個類的成員函式時候,需要類的函式位址和這個類的物件。以下是實現的類 class a 以下是呼叫的類 typedef void a pfun void 宣告類的函式指標 class b b void...

類的成員函式指標的使用方法

函式指標主要的目的是實現與運用相互分離,類的成員函式封裝在類裡面,執行需要相應的物件來呼叫,所以在呼叫這個類的成員函式時候,需要類的函式位址和這個類的物件。以下是實現的類 class a 以下是呼叫的類 typedef void a pfun void 宣告類的函式指標 class b b void...

類成員的指標

ps const 物件只能呼叫 const 函式!非 const 物件隨便!成員指標只應用於類的非static 成員。static 類成員不是任何物件的組成部分,所以不需要特殊語法來指向static 成員,static 成員指標是普通指標。int p screen total total 是 sta...