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
{
};