[C++11] Final specifier
`final` 지정자는 C++11로부터 도입된 키워드로, 클래스 멤버 함수나 가상 함수를 "오버라이드할 수 없도록" 지정하는 데 사용한다. 이를 통해 클래스의 무분별한 확장을 제어하고, 클래스 계층 구조에서 "특정 함수의 변경을 막을 수 있다". 그렇기 때문에 `final` 지정자는 주로 가상 함수와 함께 사용이 된다. 가상 함수는 파생 클래스에서 재정의할 수 있는데, 이를 방지하기 위해 `final`을 사용하는 것이다. 만약 `final` 함수를 오버라이드하려고 한다면 컴파일러가 에러를 발생시키게 된다. 다음 예제 코드를 보도록 하자. class A { public: virtual void foo() final { std::cout
C++/Modern C++(11, 14, 17, 20)
2023. 8. 24. 18:57