C++ 速查手冊
8.9 - 函數指標
#include <iostream>
void fun1(void) {
std::cout << "fun1" << std::endl;
}
int fun2(int n) {
return 0;
}
int main() {
void (*f1Ptr)(void) = fun1;
int (*f2Ptr)(int) = fun2;
f1Ptr();
std::cout << f2Ptr(1) << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0809.cpp
功能:示範 C++ 的函數
作者:張凱慶*/
第 12 行與第 13 行分別定義函數指標,留意函數指標的寫法,先是函數的回傳值型態,然後用小括弧圍住帶星號的識別字,後面則是小括弧與參數列
void (*f1Ptr)(void) = fun1;
int (*f2Ptr)(int) = fun2;
這是說,函數指標只能指向具有相同回傳值型態與參數列的函數。
下面利用函數指標呼叫函數
f1Ptr();
std::cout << f2Ptr(1) << std::endl;
編譯執行,結果如下
$ g++ u0809.cpp |
$ ./a.out |
fun1 |
0 |
$ |
相關教學影片