#include <iostream>
// 定义两个不同的函数
void function1() {
std::cout << "调用了 function1" << std::endl;
}
void function2() {
std::cout << "调用了 function2" << std::endl;
}
int main() {
// 定义函数指针
void (*funcPtr)();
// 假设根据某个运行时条件来决定调用哪个函数
bool condition = true;
if (condition) {
funcPtr = function1;
} else {
funcPtr = function2;
}
// 通过函数指针调用函数,实现动态绑定
funcPtr();
return 0;
}
- 函数指针动态绑定机制体现:
- 在代码中,
funcPtr
是一个函数指针,它可以指向不同的函数。
- 在运行时,通过
if
语句根据 condition
的值来决定 funcPtr
指向 function1
还是 function2
。这就是动态绑定的体现,因为具体调用哪个函数是在运行时根据条件动态确定的,而不是在编译时就确定好的。当调用 funcPtr()
时,实际调用的函数取决于运行时 funcPtr
所指向的函数,实现了动态调用不同的函数。