final 지정자

최종 키워드(keyword) 사용하여 파생 클래스에서 재정의할 수 없는 가상 함수를 지정할 수 있습니다. 상속할 수 없는 클래스를 지정하기 위해 해당 키워드를 사용할 수도 있습니다.

구문

function-declaration final;
class class-name final base-classes

설명

final은 컨텍스트를 구분하며 함수 선언 또는 클래스 이름 다음에 사용되는 경우에만 특별한 의미를 가집니다. 그렇지 않으면 예약된 키워드(keyword) 아닙니다.

클래스 선언에서 finalbase-classes 사용하는 경우 선언의 선택적 부분입니다.

예시

다음 예제에서는 최종 키워드(keyword) 사용하여 가상 함수를 재정의할 수 없도록 지정합니다.

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

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

멤버 함수를 재정의할 수 있도록 지정하는 방법에 대한 자세한 내용은 재정의 지정자를 참조 하세요.

다음 예제에서는 최종 키워드(keyword) 사용하여 클래스를 상속할 수 없도록 지정합니다.

class BaseClass final
{
};

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

참고 항목

키워드
override 지정자