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.
|
|