c++ - 非重写虚函数的绑定(bind)类型

标签 c++ virtual-functions overriding dynamic-binding static-binding

Consider the case where a virtual function in base class is not overriden in the derived class. Then using a base class pointer to a derived class objectthe virtual function is invoked.

我知道函数调用将在编译时解析为基类中的函数。

问题

由于函数没有在派生类中重写,函数调用是否会在编译时绑定(bind)到函数实现,还是会延迟到运行时才绑定(bind)?

最佳答案

很可能会在编译时解决。
如果有足够可靠的信息供他们决定,大多数现代编译器都足够聪明,可以在编译时解决动态调度问题。
在这种情况下,由于 Derived 类中没有提供覆盖函数,因此智能编译器应该能够在编译时静态地解析函数调用。

关于c++ - 非重写虚函数的绑定(bind)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998722/

相关文章:

java - 这种实例化在Java中叫什么?

c# - 覆盖另一个程序集中的内部抽象方法

c++ - 为什么虚函数是私有(private)的?

c++ - 为什么 std::cout 在线程中被抢占但 printf 却没有?

c++ - 为什么 MSVC 不能正确解析 this->sth 对重载 operator-> 的调用

C++ 模板和隐式类型转换

C++ 从基类中的非虚函数调用纯虚函数

c++ - 在派生类中强制执行正确的虚函数定义

java - [Java]indexOf是否使用equals?

c++ - C++中的HTTP代理示例