가상 메서드 2

[C++] 33. 메서드의 다형성

[C++] 메서드의 다형성 형식의 다형성은 기반 형식 포인터 변수로 파생 형식 개체를 설정하거나 기반 형식 참조 변수로 파생 형식 개체를 설정할 수 있는 특징이죠. 그런데 형식의 다형성만 제공한다면 기반 형식 변수로 멤버 메서드를 호출하면 실제 개체 형식에 관계없이 기반 형식에 정의한 메서드가 동작합니다. 메서드의 다형성은 기반 형식 변수로 멤버 메서드를 호출하였을 때 실제 개체 형식에 정의한 메서드가 동작할 수 있는 OOP언어의 특징입니다. 예를 들어 음악가 형식을 기반으로 파생한 형식으로 피아니스트와 드러머가 있다고 가정할게요. 그리고 음악가에는 “연주하다.”와 “인사하다.” 기능을 제공할거예요. “인사하다.” 기능은 파생 형식에 관계없이 같은 동작을 수행하지만 “연주하다.” 기능은 파생 형식에 따라..

[C++] 31. 다형성 개요

[C++] 다형성 개요 이번에는 OOP의 주요 특징 세 가지인 캡슐화, 상속, 다형성 중에 다형성에 관해 살펴봅시다. 다형성은 기반 형식의 멤버를 파생 형식에서 상속받는 장점을 활용할 수 있는 OOP 특징입니다. 하나의 기반 형식에서 파생한 다양한 파생 클래스가 있을 때 같은 형식의 변수로 접근할 수 있으면 프로그래밍을 효과적으로 할 수 있겠죠. C++언어에서는 기반 형식의 포인터 변수로 파생 형식의 개체를 설정할 수 있습니다. 그리고 기반 형식의 참조 변수로 파생 형식의 개체를 설정할 수도 있습니다. class Musician { }; class Pianist:public Musician { }; int main() { Musician *musician = new Pianist(); //기반 형식 포인..