C++ の関数ポインタの定義方法は何ですか?
C++では、関数ポインタの定義方法は次の通りです。
- 関数ポインタータイプを定義する:typedef returnType (*functionPtrType)(parameterType1, parameterType2, …);
- returnTypeは関数の戻り値の型です。
- functionPtrTypeは関数ポインタ型の名称であり、必要に応じてカスタマイズできます。
- parameterType1、parameterType2、…は関数のパラメータータイプです。
- 関数ポインタ変数を宣言します:functionPtrType functionNamePtr;
- 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関数を指し示し、その関数を関数ポインタを通して呼び出しました。