-4

我对 C++ 相当陌生,我很好奇什么时候是最有利的时间使用虚函数而不是仅仅使用覆盖,反之亦然?

4

1 回答 1

1

当您在基类中将函数定义为虚函数时,您向编译器指示您希望派生类中的函数运行,即使您使用的是对基类的引用。这会导致运行时决策。

如果基类函数不是虚拟的,那么运行哪个函数取决于引用。这是一个编译时决定。

虚函数用于在面向对象的设计中实现多态性。通常,当派生类中有同名函数时,未能将基类中的函数标记为虚拟函数是一个错误。这就是为什么大多数编译器会将其标记为警告的原因。

于 2013-03-27T23:11:02.003 回答