C++ 函数指针定义
时间: 2023-11-22 08:44:09 浏览: 35
C++ 函数指针定义的语法如下:
返回类型 (*指针变量名)(参数列表);
其中,指针变量名可以自定义,参数列表可以为空。例如,定义一个指向返回类型为 int,参数列表为空的函数指针变量:
int (*p)();
这里的 p 就是一个函数指针变量,它可以指向返回类型为 int,参数列表为空的函数。
相关问题
c++ 定义函数指针
在C++中,可以使用函数指针来保存和调用函数的地址。定义函数指针的语法如下:
```cpp
返回类型 (*指针变量名)(参数列表)
```
其中,返回类型是函数的返回类型,指针变量名是你给函数指针起的名字,参数列表是函数的参数类型和个数。
以下是一个示例:
```cpp
#include <iostream>
// 函数原型
int add(int a, int b);
int main() {
// 定义函数指针
int (*ptr)(int, int);
// 指向函数的地址
ptr = add;
// 使用函数指针调用函数
int result = ptr(3, 4);
std::cout << "Result: " << result << std::endl;
return 0;
}
// 函数定义
int add(int a, int b) {
return a + b;
}
```
在上面的示例中,我们定义了一个函数指针 `ptr`,它可以指向具有两个整数参数和整数返回值的函数。然后我们将它指向 `add` 函数的地址,并使用该函数指针调用 `add` 函数,将结果存储在 `result` 变量中并输出。
c++ decltype 定义函数指针
可以使用decltype关键字定义函数指针,需要注意的是,decltype返回函数类型时需要手动将其转换为指针类型。下面是一个例子:
```c++
// 定义一个函数
bool compare(const string& s1, const string& s2) {
return s1.size() < s2.size();
}
// 定义一个函数指针类型
using PF = bool (*)(const string&, const string&);
// 使用decltype定义函数指针
PF pf = compare;
// 使用定义好的函数指针
bool result = pf("hello", "world");
```
在上面的例子中,我们首先定义了一个函数`compare`,然后使用`using`关键字定义了一个函数指针类型`PF`。接着,我们使用`decltype`关键字定义了一个函数指针`pf`,并将其指向`compare`函数。最后,我们使用定义好的函数指针`pf`来调用`compare`函数。