考虑以下代码:
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/