`

Item 36 非虚拟的成员函数不能重定义

 
阅读更多

虚函数才是动态绑定,在运行时根据指针指向的对象的实际类型,决定调用的函数。
引用和指针是一样的,对于非虚拟函数,都是静态绑定。
一个“非虚拟”函数就意味着,某个类体系都要有这样一个共同的行为,所以在设计上重定义非虚拟函数也是错误的,会误导客户。
Item 7说过,多态的dtor也要虚拟,和本文是一样的道理,都是不希望函数被静态绑定。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics