c++ - 派生类中的虚函数行为
问题描述
我可以virtual
在基类中有一个函数吗,我的一些派生类确实有这个函数,有些没有。
class A{
virtual void Dosomething();
};
class B : public A{
void Dosomething();
};
class C : public A{
//Does not have Dosomething() function.
};
解决方案
来自我的一本 C++ 教科书:
一旦一个函数被声明为 virtual,它在继承过程中一直保持为 virtual,即使在派生类覆盖它时该函数没有显式声明为 virtual。当派生类选择不覆盖它时,它只是继承其基类的虚函数。
因此,对于您的问题,答案是否定的。c 类将使用 A 类的虚函数。
推荐阅读
- php - 如何进行多重身份验证:laravel 中的用户、管理员、卖家
- flutter - 键盘打开或关闭时 Flutter 页面重新加载
- css - Next.JS:使用全局 scss 中的 SASS 变量
- function - 为具有大量关键字参数的函数定义合约的更好方法
- vue.js - 在Vuex商店中刷新JWT令牌后使用Axios重试请求
- python - 为什么 Anaconda 会安装很多不必要的软件包?这是一个可以解决的设置问题,还是我没有正确理解 conda env?
- wordpress - 我们什么时候应该担心页面速度
- oracle - 为员工分配等级的 PL/SQL 程序
- php - 实现文件上传功能,无法返回使用csrf token提交
- python - 使用 Socket 发回数据时的代码阻塞