가상 함수란 가상함수는 부모 클래스에서 상속받을 클래스에서 재정의할 것으로 기대하고 정의해놓은 함수이다. virtual이라는 예악어를 함수 앞에 붙여서 생성할 수 있으며 이렇게 생성된 가상함수는 파생 클래스에서 재정의하면 이전에 정의되었던 내용들은 모두 새롭게 정의된 내용들로 교체된다. 이렇게 설명을 들으면 오버라이딩이랑 비슷하다고 생각할 수 있는데 아니다. 일단 가상 함수를 쓰는 이유는 업 캐스팅을 할 때 많이 사용하는 것으로 생각하면 될 것이다 업 캐스팅이란? 부모 클래스를 가리키는 포인터를 선언한 후 그 변수에 자식을 넣어주는 것이다. 코드를 보며 설명을 해보겠다. class Animal { int hp; inthunger; virtual ~Animal(); virtual getHP() return..