final, specyfikator
Ostatnie słowo kluczowe służy do wyznaczania funkcji wirtualnych, których nie można zastąpić w klasie pochodnej. Można go również użyć do wyznaczenia klas, których nie można dziedziczyć.
Składnia
function-declaration final;
class class-name final base-classes
Uwagi
final jest uwzględniana kontekstowo i ma specjalne znaczenie tylko wtedy, gdy jest używana po deklaracji funkcji lub nazwie klasy; w przeciwnym razie nie jest to zastrzeżone słowo kluczowe.
Gdy final jest używany w deklaracjach klas, base-classes
jest opcjonalną częścią deklaracji.
Przykład
W poniższym przykładzie użyto ostatniego słowa kluczowego, aby określić, że nie można zastąpić funkcji wirtualnej.
class BaseClass
{
virtual void func() final;
};
class DerivedClass: public BaseClass
{
virtual void func(); // compiler error: attempting to
// override a final function
};
Aby uzyskać informacje o sposobie określania, że funkcje składowe można zastąpić, zobacz zastępowanie specyfikatora.
W następnym przykładzie użyto końcowego słowa kluczowego, aby określić, że nie można dziedziczyć klasy.
class BaseClass final
{
};
class DerivedClass: public BaseClass // compiler error: BaseClass is
// marked as non-inheritable
{
};
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla