오버라이딩 - 함수 재정의

부모클래스의 함수를 사용하지 않고 자식 클래스만의 기능으로 사용하고 싶을 때 
부모클래스 함수와 같은 이름, 매개변수로 재정의 해서 사용하는것이다.

특징
1. 함수 이름이 같아야한다.
2. 함수 파라미터 개수, 파라미터의 자료형이 같아야 한다.
3. 오버라이드 하고자 하는 함수가 상위 클래스에 있어야한다.
4. 함수 리턴형이 같아야 한다.

예제 소스

class ParentClass //부모클래스
{
 public:
  virtual int OverrideTest(int _Value1,  int _Value2) //부모클래스 함수에 virtual 키워드를 붙여주어야한다.
  {
   return _Value1 + _Value2;
  }
};

class ChildClass : public ParentClass
{
 public:
  int OverrideTest(int _Value1, int _Value2) override
//자식클래스 함수에는 override가 암시적으로 붙지만 명시적으로 작성해주는것이 좋다.
  {
   return _Value1 - _Value2;
  }
};


int main()
{
 ParentClass Parent;
 ChildClass Child;

 int Result_Parent;
 int Result_Child;

 Result_Parent = Parent.OverrideTest(10, 20);
 Result_Child = Child.OverrideTest(10, 20);

 std::cout << Result_Parent << std::endl;
 std::cout << Result_Child << std::endl;
}

결과
30
-10

+ Recent posts