C++中函数指针举例
时间: 2024-06-15 12:04:19 浏览: 16
在C++中,函数指针是指向函数的指针变量。它可以用来存储和调用函数的地址,使得我们可以在运行时动态地选择要调用的函数。下面是一个函数指针的简单示例:
```cpp
#include <iostream>
// 定义一个函数
void printMessage(const std::string& message) {
std::cout << "Message: " << message << std::endl;
}
int main() {
// 声明一个函数指针变量
void (*funcPtr)(const std::string&);
// 将函数的地址赋值给函数指针变量
funcPtr = printMessage;
// 通过函数指针调用函数
funcPtr("Hello, World!");
return 0;
}
```
在上面的示例中,我们首先定义了一个名为`printMessage`的函数,它接受一个`std::string`类型的参数并打印出来。然后,在`main`函数中声明了一个名为`funcPtr`的函数指针变量,它可以指向接受`const std::string&`类型参数并返回`void`的函数。接着,我们将`printMessage`函数的地址赋值给了`funcPtr`,最后通过`funcPtr`调用了`printMessage`函数。
相关问题
函数指针的定义和举例
函数指针是指向函数的指针变量。它可以用来存储函数的地址,从而可以通过指针调用函数。函数指针的定义方式如下:
```c++
返回值类型 (*指针变量名)(参数列表)
```
其中,返回值类型是函数的返回值类型,指针变量名是函数指针的名称,参数列表是函数的参数类型和个数。
下面是一个函数指针的示例:
```c++
#include <iostream>
void sayHello() {
std::cout << "Hello, World!" << std::endl;
}
int main() {
void (*funcPtr)() = sayHello; // 定义一个函数指针,并将其指向sayHello函数
funcPtr(); // 通过函数指针调用sayHello函数
return 0;
}
```
在上面的示例中,我们定义了一个无返回值、无参数的函数`sayHello`,然后定义了一个函数指针`funcPtr`,并将其指向`sayHello`函数。最后通过函数指针调用`sayHello`函数,输出"Hello, World!"。
请用C++代码举例callback函数
好的,以下是一个简单的示例:
```
#include <stdio.h>
void callback(int num) {
printf("The number is %d\n", num);
}
void do_something(void (*func_ptr)(int)) {
int num = 42;
func_ptr(num);
}
int main() {
do_something(callback);
return 0;
}
```
这段代码定义了一个回调函数 `callback`,它接受一个整数参数并将其打印出来。然后定义了另一个函数 `do_something`,它接受一个函数指针作为参数,并将一个整数值传递给该函数。在 `main` 函数中,我们使用 `do_something` 函数并将 `callback` 函数作为参数传递,这将导致 `callback` 函数在 `do_something` 函数内部被调用,并输出数字 42。