为啥说c++的虚函数是动态绑定呢?
也许你这个例子,编译器能采用复杂的优化算法能去虚化,编译时绑定。因为你只有一个编译单元啊。但是更通常的情况是无法做到的,例如:void foo(A *a) { a-\u0026gt;show();}这样的一个函数,编译器怎么可能静态分析出调用了哪个方法呢。
■网友
你调试下就知道了,它是在构造函数那修改了虚表中的函数指针,也就是正如一本书上说的,不要在构造函数中调用虚函数
■网友
这就要看你编译器的水平怎么样了,dynamic binding在其他情况下还是有存在的必要的。Stanley.B.Lippman 有一本Inside the C++ Object Model 讲的就是某早起c++ compiler的一个实现,有兴趣可以看看(我反正没时间
推荐阅读
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 为啥5G和2.4G默认的BSSID是相同的
- 为啥电器实体店的价格比淘宝贵那么多
- 现在在线学习视频有很多了,为啥大部分人还是喜欢下载下来观看
- 为啥到现在你还没有女朋友 ?
- 天赐的声音|33岁张雨绮为啥总离婚?看过这些照片就明白了,都是性感惹得祸
