final 指定子
final キーワードを使用して、派生クラスでオーバーライドできない仮想関数を指定できます。 また、このキーワードは、継承できないクラスの指定にも使用できます。
構文
function-declaration final;
class class-name final base-classes
解説
final は状況依存のキーワードで、関数の宣言またはクラス名の後で使用した場合にのみ特別な意味を持ちますが、それ以外の場合は予約済みのキーワードではありません。
final をクラス宣言内で使用した場合、その宣言の base-classes
の部分は省略可能になります。
例
次の例では、final キーワードを使用して、仮想関数をオーバーライドできないことを指定しています。
class BaseClass
{
virtual void func() final;
};
class DerivedClass: public BaseClass
{
virtual void func(); // compiler error: attempting to
// override a final function
};
メンバー関数をオーバーライドできることを指定する方法については、「override 指定子」を参照してください。
次の例では、final キーワードを使用して、クラスが継承できないことを指定しています。
class BaseClass final
{
};
class DerivedClass: public BaseClass // compiler error: BaseClass is
// marked as non-inheritable
{
};
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示