#11. [레거시 C++ 개체 지향] 다형성
개요
다형성은 개체의 속성이나 기능(함수)이 상황에 따라 여러가지 형태로 변할 수 있는 성질을 말합니다.
C++에서 다형성을 위해 제공하는 기능들은 다음과 같습니다.
항목 | 내용 |
---|---|
함수 오버로딩 | 전달된 인자에 따라 다른 함수가 호출됩니다. * 연산자 오버로딩 참고 * 오버로딩 함수 결정 규칙 참고 * 오버로딩 함수 탐색 규칙 참고 |
상속 | 부모 개체를 재활용하여, 새로운 자식 클래스를 만들어 확장합니다. * is-a 관계 참고 * has-a 관계 참고 * 상속 강제 참고 * 상속 제한 참고 |
추상 클래스 | 자식 개체에게 일반 개념을 제공합니다. * 추상 클래스 참고 * public Virtual 소멸자 참고 |
인터페이스 | 기능 스펙을 제공합니다. * 인터페이스 참고 * protected Non-Virtual 소멸자 참고 |
소멸자 | 상속 관계에 따라 다르게 사용합니다. * 다형 소멸 참고 * public Non-Virtual 소멸자 참고 * public Virtual 소멸자 참고 * protected Non-Virtual 소멸자 참고 |
가상 함수 오버라이딩 | 부모 개체의 가상 함수를 재구현 합니다. * 가상 함수 참고 * 가상 함수 테이블 참고 * 순가상 함수 참고 * 순가상 소멸자 참고 |
가상 복사 생성자 | 개체 타입에 따라 자기 자신을 복제 생성하는 함수입니다. * 가상 복사 생성자 참고 |
템플릿 | 개체 타입에 따라 다르게 동작하는 함수와 클래스 |
dynamic_cast | 상속 관계가 있는 개체간의 변환을 제공합니다. * 명시적 형변환 참고 * Runtime Type Info(RTTI)와 형변환 참고 |
Runtime Type Info(RTTI) | 개체의 타입 정보를 제공합니다. * Runtime Type Info(RTTI)와 형변환 참고 |
댓글남기기