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
$

相關教學影片

上一頁 8.8 - 多載函數
回 C++ 速查手冊首頁
下一頁 單元 9 - 類別
回 C++ 教材
回程式語言教材首頁