[C++] 다형성(가상함수, 동적결합, 가상소멸자, 순수가상함수)
가상함수 객체와 포인터 변수끼리 대입할때는 좌우변의 타입이 같거나 호환되어야 한다. 객체끼리의 대입도 마찬가지인데 사람과 시간처럼 전혀 관련 없는 객체끼리 대입할 수 없다. 그러나 상속관계에 있는 객체끼리는 타입이 달라도 어느 정도 대입이 허용된다. 자식이 부모 객체로부터 필요한 정보만 복사하고 나머지는 적당한 디폴트를 취하는 대입연산자를 정의하면 역방향의 대입도 가능하지만 일반적이지 않다. 요약하자면 부모 포인터로 자식을 가리킬 수 있지만, 자식 포인터로는 부모를 가리킬 수 없다. 가상 함수의 개념 부모 타입의 포인터가 자식 객체를 가리키는 상황에서 이 포인터로 멤버함수를 호출하면 어떤 함수가 호출될까? 포인터의 정적 타입을 따를 수도 있고 동적타입을 따를 수도 있는데 다음 예제를 살펴보자. // 파일..