final, override

headkio·2020년 9월 11일
0

C++

목록 보기
20/35
post-thumbnail

final

  • 클래시나 가상 함수의 상속을 막는다.
  • 컴파일 도중 확인 가능하다 (good)
  • 가상 함수가 아니면 쓸 수 없다.
class MyClass final
{
  // ...
}
#include "MyClass.h"

Class OtherClass : public MyClass // Error !!
{
  // ...
}
class MyClass
{
  public:
    vitual void GetValue(int value);
}
class ChildClass : public MyClass
{
  public:
    vitual void GetValue(int value) override; // Error !!
}

override

잘못된 함수 오버라이딩을 예방한다.
컴파일 도중 검사한다.
가상 함수가 아니면 쓸 수 없다.

class MyClass
{
  public:
    virtual void SetValue(int value);
}
#include "MyClass.h"

class ChildClass : public MyClass
{
  public:
    virtual void SetValue(float value) ; 
      // 실수로 없는 함수를 override 시도
      // 새로운 함수가 생겨버림.
      
    virtual void SetValue(float value) override; 
      // Error !! 실수 예방
     
    virtual void SetValue(int value) override; 
      // Success !!
}
profile
돌아서서 잊지말고, 잘 적어 놓자

0개의 댓글