在c++中,什么时候使用虚函数而不是重写函数最有利,反之亦然
When is it most beneficial to use a virtual function instead of overriding and vice versa in C++
我对c++相当陌生,我很好奇什么时候使用虚函数而不是在c++中使用重写,反之亦然?
当您在基类中将函数定义为虚函数时,您是在向编译器表明您希望派生类中的函数运行,即使您使用对基类的引用。这会导致一个运行时决策。
如果基类函数不是虚函数,则运行哪个函数取决于引用。这是编译时的决定。
虚函数用于在面向对象设计中实现多态性。当派生类中有同名函数时,没有将基类中的函数标记为虚函数,往往会导致错误。这就是为什么大多数编译器会将此标记为警告。相关文章:
- 在 C++ 中用派生类型重写成员函数
- 重写虚拟函数和继承
- C++调用使用重写函数的父类函数
- 重写打印函数而不是覆盖基类
- 重写函数不打印基类数据
- 将一个小的 C 定义重写为"normal" C++函数
- 重写另一个方法 [C++] 使用的超类回调函数
- 具有派生参数的函数重写
- 在回调中使用函数时,C++未知重写说明符
- 用模板化函数重写虚拟函数
- 没有函数重写的多重继承.为什么模棱两可
- C++ 继承构造函数重写
- 关于C++中的虚拟函数重写
- C++函数重写不起作用
- 如何实现类变量的虚拟函数重写
- 将C++函数重写为C#(将指针传递到数组中的下一个元素)
- 引用可以用于实现函数重写吗
- 用函数重写嵌套的if-else语句
- C++继承函数重写
- 本机C++中的函数重写