C++で関数ポインタを定義して使う方法は何ですか?
C++において、関数ポインタは関数を指すポインタ変数です。関数ポインタを定義する基本的な構文は以下の通りです:
返回值类型 (*变量名)(参数列表)
こちらは日本語での表現例です:
#include <iostream>
// 声明一个函数指针类型
typedef void (*FuncPointer)(int);
// 定义一个函数
void printNumber(int num) {
std::cout << "Number: " << num << std::endl;
}
int main() {
// 定义一个函数指针变量并初始化为指向printNumber函数
FuncPointer ptr = printNumber;
// 使用函数指针调用函数
ptr(10);
return 0;
}
上記の例では、まず、int型の引数とvoid型の戻り値を持つ関数を指すFuncPointerという関数ポインタ型を宣言しています。次に、printNumber関数を定義し、その後、main関数内で、printNumber関数を指すように関数ポインタ変数ptrを定義し初期化します。最後に、関数ポインタを呼び出して関数を実行します。
関数ポインタの型は、指す関数の型に一致している必要があります。これには、引数リストや戻り値の型も含まれます。また、関数ポインタを使用して関数を呼び出す際には、通常の関数のように関数名に引数リストを追加するか、関数ポインタ変数に直接引数リストを追加することができます。