我有一個有similiar聲明幾個功能:如何泛型函數指針傳遞作爲參數
int foo(int a);
int bar(int a);
int test(int a);
我的消息處理程序的邏輯是完全一樣的:
void HandleFoo(int a) {
process(a);
int ret = foo(a);
if (ret)
print(a);
}
void HandleBar(int a) {
process(a);
int ret = bar(a);
if (ret)
print(a);
}
void HandleTest(int a) {
process(a);
int ret = test(a);
if (ret)
print(a);
}
所以我想知道是否可以寫出一般功能:
void Handle(int a, func_pointer fn) {
process(a);
int ret = fn(a);
if (ret)
print(a);
}
fn
就像一個可以接受的通用函數指針foo
,bar
和test
這可能嗎?
順便說一下,目前沒有C + + 11和我的項目中提升,只使用TR1。
'typedef int(* func_pointer)(int)'應該這樣做。然後:'Handle(10,&foo);'例如。 – Nbr44