MST
星途 面试题库

面试题:C++ 中函数指针动态绑定机制的基础应用

请编写一段 C++ 代码,展示如何利用函数指针实现动态绑定。要求至少有两个不同的函数,通过函数指针根据运行时的条件调用不同函数。解释代码中函数指针动态绑定机制是如何体现的。
20.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#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;
}
  1. 函数指针动态绑定机制体现
    • 在代码中,funcPtr 是一个函数指针,它可以指向不同的函数。
    • 在运行时,通过 if 语句根据 condition 的值来决定 funcPtr 指向 function1 还是 function2。这就是动态绑定的体现,因为具体调用哪个函数是在运行时根据条件动态确定的,而不是在编译时就确定好的。当调用 funcPtr() 时,实际调用的函数取决于运行时 funcPtr 所指向的函数,实现了动态调用不同的函数。