C++標準では、デストラクタをfinal
と宣言できますか?このように:デストラクタが最終的になることがありますか?
class FurtherDerived: public Derived {// allowed?
}
、コンパイラは警告を発行する可能性がある:
class Derived: public Base
{
...
virtual ~Derived() final;
}
もしそうなら、それは派生クラスの宣言を防ぐん
?デストラクタをfinal
にすると、クラスが基本クラスとして使用されることを意図していないことを示すための実行可能なイディオムになると宣言していますか?
(唯一の派生クラス、no point in doing this in a ultimate base classあります。)
クラスがベースとして使用されないことを示すためのイディオムは、そのクラスを最終的にすることです。 – juanchopanza
クラスが継承元ではないことを示す場合は、クラス全体を「final」にすることができます。 'class Deverired final:public Base' –