傳遞普通函式和類的成員函式方式不同,原因是傳遞函式引數實際傳的是函式的位址,但是普通函式和成員函式的位址獲取方式不太相同。普通函式只要傳遞乙個函式名稱即可,但是成員函式在類的內部中沒有位址,選擇乙個成員函式就意味著得知道該函式在類中的偏移量,因此需要知道該物件和對應的偏移量,才能得到真實的位址。當然,你也可以將成員函式設定為靜態函式(static)來當作普通函式來看待。
由於處理方式不同,所以可以採用函式過載的方式。由於每次傳的物件型別可能不同,所以採用template。
**如下:
1 #include;2using
namespace
std;
3class
abc ;89
void abc::f1(int n, int
b) 12
13void abc::f2(int
n) 16
17void f(int
n) 20
//normal function
21void cb(void(*callback)(int), int
n) 24
//member function
25 template
26void cb(t *obj, void (t::*callback)(int), int
n) 29
int main(void
)
用引用傳遞函式引數
1 引用傳遞引數 傳遞引用給函式與傳遞指標的效果一樣,傳遞的是原來的變數或物件,而不是在函式作用域內建立變數或物件的副本。在8 6節中,我們看到對swap int,int 傳值方式函式的呼叫不影響呼叫函式中的實參,結果並未達到交換資料的預想目的。使用指標傳遞方式的swap int int 函式的呼叫...
R 引數傳遞函式 getopt
getopt 是getopt包的函式,需要先按照getopt包 getopt spec null,opt commandargs true command get rscript filename usage false,debug false spec 乙個4或5列的矩陣,裡面包括了引數資訊,前四...
如何傳遞函式
摘自 非同步 庫提供了一些函式,這些函式使您可以在元件之間傳遞訊息。這些訊息傳遞函式與各種訊息塊型別一起使用。有關併發執行時所定義的訊息塊型別的更多資訊,請參見非同步訊息塊。各節內容 本主題描述以下訊息傳遞函式 send 和 asend concurrency send 函式一條訊息傳送到指定目標同...