Udostępnij za pośrednictwem


final, specyfikator

Można użyć final słowo kluczowe, aby wyznaczyć funkcje wirtualnych, które nie mogą być przesłaniane w klasie pochodnej.Umożliwia także to do wyznaczenia klas, które nie mogą być dziedziczone.

function-declaration final;

class class-name final base-classes

Uwagi

finaljest zależne od kontekstu i ma specjalne znaczenie tylko wtedy, gdy jest używany po deklaracji funkcji lub nazwy klasy; w przeciwnym razie nie jest zastrzeżonym słowem kluczowym.

Gdy final jest używany w deklaracji klasy base-classes jest opcjonalnym składnikiem zgłoszenia.

Przykład

W poniższym przykładzie użyto final słowo kluczowe, aby określić, że nie można zastąpić funkcję wirtualną.

class BaseClass
{
    virtual void func() final;
};

class DerivedClass: public BaseClass
{
    virtual void func(); // compiler error: attempting to 
                         // override a final function
};

Aby uzyskać informacje dotyczące sposobu określania funkcji elementów członkowskich może być zastąpiona, zobacz override, specyfikator.

W następnym przykładzie użyto final słowo kluczowe, aby określić, że klasa nie może być dziedziczona.

class BaseClass final 
{
};

class DerivedClass: public BaseClass // compiler error: BaseClass is 
                                     // marked as non-inheritable
{
};

Zobacz też

Informacje

Słów kluczowych języka C++

override, specyfikator

Inne zasoby

C++ Type Names