c++ - 在派生类中添加虚拟说明符

标签 c++ class inheritance virtual

考虑以下代码:

struct virtualfoo 
{
    virtualfoo{};
    virtual ~virtualfoo{};

    virtual double doStuff() = 0
};


struct realbar :  virtualfoo   
{
     realbar{};
     virtual ~realbar{};

     virtual double doStuff();
};

因为我想为 realbar 实现 doStuff(),虚拟不是强制性的。但是,如果我做对了,将虚拟说明符放在 realbar::doStuff() 旁边不会有什么坏处,不是吗? 使用/不使用虚拟会有什么副作用?

最佳答案

virtual 关键字在派生类中不是必需的。但是它使代码更清晰。同样在 C++11 中引入了 override 关键字,它允许源代码明确指定成员函数打算覆盖基类方法。

使用关键字override 编译器将检查基类以查看是否存在具有此确切签名的虚函数。如果没有,编译器将抛出错误。

关于c++ - 在派生类中添加虚拟说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44523336/

相关文章:

c++ - WEXITSTATUS 始终返回 0

ios - 在继承中传递变量 (Obj - C)

c++ - 我如何在 C++ 中打印这个“█”特殊字符?

c++ - 处理 Windows 套接字错误

c# - 存储对对象的引用

python - 从python中的父类(super class)获取属性

javascript - 使用 Resig 的简单 javascript 继承确定一个函数是否扩展另一个函数

python - 重载加法、减法和乘法运算符

c++ - ISO 文档 : based on Anonymous Unions 中的一点

c++ - 方法 getline c++ 后 Switch 语句 react 错误