C++ Primer Plus中文版第449页关于虚函数表的部分是不是说得有误啊
右下角的几句话说“①如果派生类提供了虚函数的新定义,该虚函数表将保存新函数的地址;②如果派生类没有重新定义虚函数,该vtbl(虚函数表)将保存函数原始版本的地址。③如果派生类定义了新的虚函数,则该函数的地址也将被添加到vtbl中。”
句子③是不是说得有误啊,一开始我觉得可能是我理解不对,但是看附的那张图的确与我的想法一致。那张图中只有派生类定义了 show_field() 但它却被添加到了表中。我觉得新的函数如果只在派生类中定义的话,不管它有没有被声明为virtual它都不是virtual,它也不会被添加到表中
很想知道有这本书的你们的看法
[解决办法]
句子③没错,派生类可以定义新的虚函数,只是这个虚函数无法用基类指针访问而已,但是派生类的派生类是可以访问的,所以也要加到虚函数表中
[解决办法]