반응형
1. final
- 상속을 방지하는 키워드
- 더 이상 가상함수를 오버라이딩하지 않겠다는 의미
- 가상함수의 마지막을 가르키는 키워드
- 클래스와 멤버함수 둘 다 사용 가능
- override와 같은 자리에 쓰임
2. 예시
#include <iostream>
using namespacee std;
class A
{
public:
virtual void print()
{
cout << "A" << endl;
}
};
class B : public A
{
public:
void print() final
{
cout << "B" << endl;
}
};
class C : public B
{
public:
virtual void print() // 에러 -> B에서 final로 상속을 끝냈기 때문
{
cout << "C" << endl;
}
}