virtual 키워드는 상속 받는 자식 클래스에서 override해서 구현하라는 의미로 부모클래스에서 사용된다. 보통의 가상 함수는 override를 강제하지 않고 옵션으로 두지만, 순수 가상 함수로 선언해 자식 클래스에서 무조건 구현해야 하도록 만들 수 있다. override 키워드는 부모의 가상함수를 재정의 했다는 의미로 사용된다. 재정의 하는 경우는 다음과 같은 성질을 만족해야 한다. 부모 클래스 함수가 반드시 가상 함수 이어야한다. 부모의 함수와 자식의 함수 이름이 반드시 동일해야한다. (소멸자 예외) 부모의 함수와 자식의 함수 매개변수 형식들이 반드시 동일해야한다. 부모의 함수와 자식의 함수 const 성이 반드시 동일해야한다. 부모의 함수와 자식의 함수 반환형식과 예외 명세가 호환되어야한다. ..