개요

가상함수를 이용하여 다형성 기술을 알아본다.

다형성

개요

다형성이란 하나의 기호를 여러가지 의미로 사용하는 기술이다.

다형성은 크게 컴파일 시간 다형성과 실행시간 다형성으로 나뉜다.

컴파일 시간 다형성에는 함수 중복 정의, 연산자 중복 정의로 나누어지고 실행 시간 다형성은 가상 함수로 구현된다.

실행 시간 다형성

객체들의 타입이 다르면 똑같은 메세지가 전달 되더라도 서로 다른 동작을 하는 것을 의미한다.

중요한 것은 메세지를 보내는 측에서 객체가 어떤 타입인지 알 필요가 없다는 점이다.

실행시간에 객체의 타입에 따라서 자동적으로 적합한 동작을 결정한다.

즉, 동일한 코드로 다양한 타입의 객체를 처리하는 기술이다.

객체 포인터의 형변환

다형성은 객체 포인터를 통하여 구현된다.

동물 클래스를 부모로 개와 고양이 자식클래스가 구현되었다고 가정해보자

객체 포인터는 타입이 맞는 객체만을 가리킬 수 있다.

자식클래스인 개의 객체 포인터는 개 타입만을 가리킬 수 있다.