为啥说c++的虚函数是动态绑定呢?

也许你这个例子,编译器能采用复杂的优化算法能去虚化,编译时绑定。因为你只有一个编译单元啊。但是更通常的情况是无法做到的,例如:void foo(A *a) { a-\u0026gt;show();}这样的一个函数,编译器怎么可能静态分析出调用了哪个方法呢。
■网友
你调试下就知道了,它是在构造函数那修改了虚表中的函数指针,也就是正如一本书上说的,不要在构造函数中调用虚函数
■网友
这就要看你编译器的水平怎么样了,dynamic binding在其他情况下还是有存在的必要的。Stanley.B.Lippman 有一本Inside the C++ Object Model 讲的就是某早起c++ compiler的一个实现,有兴趣可以看看(我反正没时间


    推荐阅读