將函數名作為參數傳遞給另外一個函數(其實函數名是一個函數指針)
例1:
int f1()
{
return 1;
}
int f2()
{
return 2;
}
void f(int f())
{
printf("%d/n",f());
}
int main()
{
f(f1);
f(f2);
return 0;
}
輸出
1
2
例2:
void listArray(void handler(int &item))
{
int ia[] = {1, 2, 3, 4, 5, 6};
for(int i = 0; i < 6; ++i)
{
if(handler)
handler(ia[i]);
std::cout << i << ":" << ia[i] << " ";
}
std::cout << std::endl;
}
void doubleValueHandler(int &i)
{
if(i % 2 == 0)
i *= i;
return ;
}
void testMethodHandler()
{
listArray(NULL);
listArray(doubleValueHandler);
}
輸出:
0:1 1:2 2:3 3:4 4:5 5:6
0:1 1:4 2:3 3:16 4:5 5:36