由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C++虚函数动态绑定的含义?
相关主题
How to check the virtual function table size?一个c++问题 (转载)
C++小插曲copy constructor问题。
问题:vptr/vtable for virtual function & vptr/vtable for问个虚函数的作用
A C++ compiler related interview questionvptr 到底是在第一个还是最后一个
some c++ question.再问C++问题。
师傅们都出来看看吧,我也问个C++返回值问题。问一个C++问题:default parameter and overriding/inheritanc (转载)
为什么derived object没有vptr?c++里的函数可不可以是virtual+static
我有个很傻的问题,关于function call via pointerTwo questions on virtual destructor
相关话题的讨论汇总
话题: 绑定话题: 函数话题: 动态话题: runtime话题: c++
进入Programming版参与讨论
1 (共1页)
y**b
发帖数: 10166
1
所谓动态绑定或晚绑定,不就是编译器自动插入vptr/vtable等代码,
间接获取函数地址来实现对不同函数的调用。
同静态绑定相比,不都是编译期间生成的代码吗(但是允许更智能一点),
为什么要称之为运行时绑定或动态绑定呢?
从程序员的角度,不就是需要的时候智能一点,还有什么本质区别吗?
t****t
发帖数: 6806
2
for example, B/C/D are all based on A. you may new B/C/D depending on user
input (runtime), and call the virtual members of B/C/D using signature of A.
so it is indeed runtime binding.
codes are generated in compile time, that's correct.

【在 y**b 的大作中提到】
: 所谓动态绑定或晚绑定,不就是编译器自动插入vptr/vtable等代码,
: 间接获取函数地址来实现对不同函数的调用。
: 同静态绑定相比,不都是编译期间生成的代码吗(但是允许更智能一点),
: 为什么要称之为运行时绑定或动态绑定呢?
: 从程序员的角度,不就是需要的时候智能一点,还有什么本质区别吗?

y**b
发帖数: 10166
3
嗯,这是很明确的运行时绑定,谢了。

A.

【在 t****t 的大作中提到】
: for example, B/C/D are all based on A. you may new B/C/D depending on user
: input (runtime), and call the virtual members of B/C/D using signature of A.
: so it is indeed runtime binding.
: codes are generated in compile time, that's correct.

1 (共1页)
进入Programming版参与讨论
相关主题
Two questions on virtual destructorsome c++ question.
c++ define 一问师傅们都出来看看吧,我也问个C++返回值问题。
C++声明细问为什么derived object没有vptr?
one question about operator delete我有个很傻的问题,关于function call via pointer
How to check the virtual function table size?一个c++问题 (转载)
C++小插曲copy constructor问题。
问题:vptr/vtable for virtual function & vptr/vtable for问个虚函数的作用
A C++ compiler related interview questionvptr 到底是在第一个还是最后一个
相关话题的讨论汇总
话题: 绑定话题: 函数话题: 动态话题: runtime话题: c++