final 지정자
최종 키워드(keyword) 사용하여 파생 클래스에서 재정의할 수 없는 가상 함수를 지정할 수 있습니다. 상속할 수 없는 클래스를 지정하기 위해 해당 키워드를 사용할 수도 있습니다.
구문
function-declaration final;
class class-name final base-classes
설명
final은 컨텍스트를 구분하며 함수 선언 또는 클래스 이름 다음에 사용되는 경우에만 특별한 의미를 가집니다. 그렇지 않으면 예약된 키워드(keyword) 아닙니다.
클래스 선언에서 final을 base-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
{
};
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기