C++에서 상속(Inheritance)은 기존 클래스의 기능을 물려받아 새로운 클래스를 정의하는 기능이다.
코드 재사용성을 높이고 객체 간 계층 구조를 형성하는 데 필수적이다.
상속의 특징
- 코드 재사용: 부모 클래스의 멤버를 재정의 없이 사용한다.
- 기능 확장: 부모의 기능을 유지하며 자식 클래스만의 특징을 추가한다.
- 다형성 구현: 부모 클래스 타입으로 자식 객체를 참조할 수 있어 유연한 프로그래밍이 가능하다.
- 오버라이딩: 부모의 가상 함수를 자식 클래스에서 재정의하여 객체마다 다르게 동작하게 한다.
상속 사용 시 주의사항
무분별한 상속은 클래스 간 결합도를 높여 유지보수를 어렵게 할 수 있다.
따라서 “is-a 관계”가 성립하는지 신중히 검토해야 한다.
구조적 설계
상속을 통해 공통 로직을 부모 클래스로 통합하면 중복이 제거되고 구조 파악이 용이해진다.
다만 깊은 상속 계층은 피해야 하며 포함(Composition) 관계와 적절히 병행하여 유연한 설계를 수행해야 하는 것 같다.