C++ の関数ポインタの定義方法は何ですか?

C++では、関数ポインタの定義方法は次の通りです。

  1. 関数ポインタータイプを定義する:typedef returnType (*functionPtrType)(parameterType1, parameterType2, …);
  2. returnTypeは関数の戻り値の型です。
  3. functionPtrTypeは関数ポインタ型の名称であり、必要に応じてカスタマイズできます。
  4. parameterType1、parameterType2、…は関数のパラメータータイプです。
  5. 関数ポインタ変数を宣言します:functionPtrType functionNamePtr;
  6. functionNamePtrは、必要に応じてカスタマイズできる関数ポインタ変数の名前です。

「例えば、void(*)(int, int)型の関数ポインタを定義すると、2つのint型引数を持ち、void型を返す関数ポインタを指すことになります。そして、addという関数ポインタ変数を宣言する場合は、以下のように書くことができます。」

typedef void (*functionPtrType)(int, int);
functionPtrType addPtr;

void add(int a, int b) {
    std::cout << a + b << std::endl;
}

int main() {
    addPtr = add; // 将函数地址赋给函数指针变量
    addPtr(2, 3); // 等同于调用add(2, 3)
    return 0;
}

出力結果は5です。上記の例では、addPtrがadd関数を指し示し、その関数を関数ポインタを通して呼び出しました。

bannerAds