Udostępnij za pośrednictwem


final, specyfikator

Możesz użyć słowa kluczowego final, aby wyznaczyć funkcje wirtualne, które nie mogą zostać zastąpione w klasie pochodnej.Możesz również użyć go do wyznaczenia klas, które nie mogą być dziedziczone.

function-declaration final;

class class-name final base-classes

Uwagi

Słowo kluczowe final jest zależne od kontekstu i ma specjalne znaczenie tylko wtedy, gdy jest używane po deklaracji funkcji lub nazwie klasy; w przeciwnym wypadku nie jest zarezerwowanym słowem kluczowym.

Gdy final jest używane w deklaracji klasy, base-classes jest opcjonalnym elementem deklaracji.

Przykład

W poniższym przykładzie użyto słowa kluczowego final, aby określić, że funkcja wirtualna nie może zostać zastąpiona.

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, w jaki funkcje członkowskie mogą być zastępowane, zobacz override, specyfikator.

W następnym przykładzie użyto słowa kluczowego final, 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łowa kluczowe języka C++

override, specyfikator

Inne zasoby

C++ Type Names