類的成員函式指標作為引數傳遞給其他函式和普通函式指標的傳遞是不同的
完整的例子:
#include #include using namespace std;
typedef void (*pfun)(int, int); // 轉義
typedef std::functionfunctiontype;
void fun1(int x, int y)
void callfun(pfun pfun)
void callfun1(pfun pfun, int x, int y)
class a
static void staticfun(int x, int y) };
typedef int (a::*pclassfun)(int, int); // 轉義
void callclassfun(a *a, pclassfun pclassfun)
void callclassfun1(a &a, pclassfun pclassfun)
void callclassfun2(void *context, pclassfun pclassfun, int x, int y)
typedef std::functionclassfunctiontype;
int main()
其中1,類的靜態成員函式指標定義和使用方法跟普通函式指標幾乎一樣,因為靜態類成員屬於全域性靜態區儲存
2,類的非靜態類成員函式指標呼叫時需要指定哪個例項呼叫,所以需要額外傳入類的例項(物件、引用、指標均可)上下文context
3,用function類實現的時候,不需要傳入類例項上下文,因為bind裡面已經做了繫結
C 類成員函式指標
使用類成員函式指標需要掌握的三點。1 申明類成員函式指標 2 通過物件指標呼叫類函式指標 3 通過物件呼叫類函式指標 例 定義基類和子類 class base virtual void print2 class derived public base virtual void print2 申明類成...
C 類成員函式指標
include 自定義型別,包含兩種不同的成員函式 class mytest public mytest inta data a intget void set inta private int data 定義指向該 型別成員函式 的 函式指標 型別 注意格式!typedef int mytest ...
C 指向類成員函式的指標詳細解析
首先 函式指標是指向一組同型別的函式的指標 而類成員函式我們也可以相似的認為,它是指向同類中同一組型別的成員函式的指標,當然這裡的成員函式更準確的講應該是指非靜態的成員函式。前者是直接指向函式位址的,而後者我們從字面上也可以知道 它肯定是跟類和物件有著關係的。typedef int p int,in...