基类所有重新希望它的派生类各自定义适合自身的版本,此时基类就将这些声明成虚函数。
派生类必须在其内部对所有重新定义的虚函数进行声明,派生类可以在这样的函数之前加上virtual,但是并不是非得这么做。
当某个虚函数通过指针或引用调用时,编译器产生的代码知道运行时才能确定应该调用那个版本的函数。被调用的函数是与绑定到指针或引用上的对象的动态类型相匹配的那一个。
当且仅当对通过指针或引用调用虚函数时,才会在运行时解析该调用。
在C++11新标准中我们可以使用override关键字来说明派生类中的虚函数。这么做的好处是在使得程序员的意图更加清晰的同时让编译器可以为我们发现一些错误。
虚拟继承是多重继承中特有的概念 见程序员面试宝典P144
时间: 2024-12-11 16:08:28