태그: inheritance
3편
-
C++ 객체 슬라이싱: 파생 부분이 잘려 나가는 네 가지 경우와 다형성 지키는 법
파생 객체를 기반 클래스 값으로 넘기거나 반환하고, 대입하거나 vector에 담는 네 가지 경우에 파생 부분이 잘려 나가는 이유를 메모리 레이아웃으로 보여주고, 참조·포인터·스마트 포인터와 복사 방지로 다형성을 지키는 법을 설명합니다.
-
C++ Mixin 패턴: 템플릿 상속으로 로깅·카운팅 기능 조합하기
템플릿 매개변수로 받은 기반 클래스를 상속해 로깅·카운팅 같은 기능 조각을 필요한 클래스에만 조합하는 C++ Mixin 패턴을 다룹니다. 다중 Mixin, CRTP Mixin, 조건부 기능 선택, 메서드 체이닝을 예제로 보여 줍니다.
-
C++ Decorator 패턴: 상속 대신 감싸서 기능 붙이기 (스트림·로깅·포매터 예제)
C++ Decorator 패턴으로 상속 없이 객체를 감싸 기능을 덧붙이는 방법을 스트림 데코레이터, 로깅 시스템, 텍스트 포매터 예제로 구현하고, 빌더 스타일로 여러 데코레이터를 조합하는 패턴을 설명합니다.