C++ 动态绑定(bind)

标签 c++

C++ 如何实现动态绑定(bind)和静态类型?

最佳答案

当您有一个指向对象的指针时,该对象实际上可能属于派生自指针类的类(例如,实际上指向 Car 对象的 Vehicle*;这称为“多态性” ).因此有两种类型:指针的(静态)类型(在本例中为 Vehicle)和指向对象(在本例中为 Car)的(动态)类型。

静态类型意味着尽早检查成员函数调用的合法性:由编译器在编译时检查。编译器使用指针的静态类型来判断成员函数调用是否合法。如果指针的类型可以处理成员函数,那么指向的对象当然也可以处理它。例如,如果 Vehicle 具有某个成员函数,那么 Car 肯定也具有该成员函数,因为 Car 是一种 Vehicle。

动态绑定(bind)意味着成员函数调用中代码的地址是在最后可能的时刻确定的:基于运行时对象的动态类型。之所以称为“动态绑定(bind)”,是因为绑定(bind)到实际调用的代码是动态完成的(在运行时)。动态绑定(bind)是虚函数的结果。

关于C++ 动态绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375876/

相关文章:

c++ - 可以在刷新操作中写入文件失败

c++ - Guid.NewGuid() 的 C++ 版本是什么?

c++保护对公共(public)功能的访问

c++ - VS 2012 更改默认调试 'Working Directory'

c++ - 如何生成像列表理解这样的 vector

c++ - 模板类中使用了错误的构造函数

c++ - 通过 C++ 代码在 Linux 上启动/停止守护进程

c++ - 显示一年中每一天的新信息

c++ - gcc -O2 小于 gcc -O2 -g 后跟 strip --strip-all

c++ - 是否支持从 unique_ptr 到原始指针的隐式转换?