Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对 C++ 相当陌生,我很好奇什么时候是最有利的时间使用虚函数而不是仅仅使用覆盖,反之亦然?
当您在基类中将函数定义为虚函数时,您向编译器指示您希望派生类中的函数运行,即使您使用的是对基类的引用。这会导致运行时决策。
如果基类函数不是虚拟的,那么运行哪个函数取决于引用。这是一个编译时决定。
虚函数用于在面向对象的设计中实现多态性。通常,当派生类中有同名函数时,未能将基类中的函数标记为虚拟函数是一个错误。这就是为什么大多数编译器会将其标记为警告的原因。