다음을 통해 공유


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

참고 항목

참조

C++ 키워드

override 지정자

기타 리소스

C++ Type Names