Rae*_*ald 38 c++ inheritance destructor c++11
C++标准是否允许将析构函数声明为final?像这样:
class Derived: public Base
{
...
virtual ~Derived() final;
}
Run Code Online (Sandbox Code Playgroud)
如果是这样,那是否会阻止派生类的声明:
class FurtherDerived: public Derived {// allowed?
}
Run Code Online (Sandbox Code Playgroud)
如果是允许的,是一个编译器可能会发出警告?声明析构函数是final一个可行的习惯用法,用于表明某个类不打算用作基类?
Bar*_*rry 58
可以将C++析构函数声明为
final?
是.
如果是这样,那是否会阻止派生类的声明:
是的,因为派生类必须声明析构函数(由您明确地或由编译器隐式地),并且析构函数将覆盖声明的函数final,该函数是格式错误的.
如果
f某个类B中的虚函数使用virt-specifier 标记,final并且在从B派生的类D中使用函数D?::?f覆盖B?::?f,则该程序格式错误.
它的衍生本身是不正确的,不必使用它.
声明析构函数是最终的可行成语,用于指示某个类不打算用作基类?
实际上,你应该只标记课程final.它更加明确.
| 归档时间: |
|
| 查看次数: |
3450 次 |
| 最近记录: |