bjo*_*ude 3 c++ virtual inheritance class
考虑以下代码:
struct virtualfoo
{
virtualfoo{};
virtual ~virtualfoo{};
virtual double doStuff() = 0
};
struct realbar : virtualfoo
{
realbar{};
virtual ~realbar{};
virtual double doStuff();
};
Run Code Online (Sandbox Code Playgroud)
因为我想实现doStuff()的realbar,虚拟的是不是强制性的.但如果我做对了,那么将虚拟说明符放在旁边也不会有害realbar::doStuff(),是吗?使用/不使用虚拟可以获得哪些副作用?
派生类中不需要virtual关键字.然而,它使代码更清晰.同样在C++ 11 override中引入了关键字,它允许源代码清楚地指定成员函数旨在覆盖基类方法.
使用关键字override,编译器将检查基类以查看是否存在具有此确切签名的虚函数.如果没有,编译器将抛出错误.
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |