Final (C++)

提供: Appmethod Topics
移動先: 案内検索

キーワード(アルファベット順):インデックス への移動



構文

FUNCTION NAME [[final]]

説明

final 属性を使用すると、クラスがさらに継承されたり、関数がオーバーライドされることが抑制されます。 final 属性をクラス定義またはクラス定義内の仮想メンバ関数宣言に追加できます。

final 属性があるクラスは別のクラスに対する基底クラスになることが許可されません。 final 属性の付いた仮想関数は、派生クラスでオーバーライドできません。

クラス B と B から派生したクラス D の仮想メンバ関数 f が final とマークされている場合は、関数 D::f は B::f にオーバーライドし、プログラムは不正な形式です(コンパイラによるメッセージはなし)。

struct B 
{
   virtual void f [[ final ]] ();
};

struct D : B 
{
   void f(); // ill-formed
};


移植性

POSIX Win32 Win64 ANSI C ANSI C++

deprecated

+

メモ: final 属性は、Clang ベースの C++ コンパイラではサポートされていません。

関連項目