태그: polymorphism
7편
-
C++ 가상 함수 현장 매뉴얼 | 설계·비용·override·실무 패턴 한글 정리
가상 함수를 언제 쓰고 언제 템플릿으로 대체할지, override/final로 실수를 줄이는 법, 다형 호출 비용과 캐시 친화 설계까지. 현업에서 바로 적용 가능한 체크리스트와 안티패턴을 정리합니다.
-
C++ 가상 함수 심화 가이드 | vtable·vptr, 가상 상속, 추상 클래스, 가상 소멸자
C++ 가상 함수가 런타임에 올바른 오버라이드를 호출하는 원리(vtable·vptr), override와 final, 순수 가상 함수와 추상 클래스, 가상 소멸자, 다이아몬드 상속을 예제로 설명하고, 생성자 안의 가상 호출·기본 인자·이름 가림 같은 함정을 짚습니다.
-
C++ vtable과 vptr: 가상 함수 호출이 동작하는 방식과 메모리·호출 비용
C++ 가상 함수를 사용하면 객체 안에 vptr이 생기고, 이 포인터가 vtable을 가리켜 런타임에 올바른 함수를 찾습니다. 다형성이 어떻게 동작하는지, 메모리 구조와 성능까지 실전 예제로 정리합니다.
-
C++ Visitor 패턴: 더블 디스패치와 std::variant + std::visit 비교
C++ Visitor 패턴을 더블 디스패치와 std::variant + std::visit 두 가지 방식으로 비교합니다. AST 순회, 상태 머신, overloaded 람다 헬퍼 등 실전 예제와 함정을 다룹니다.
-
C++ Strategy 패턴: 다형성 vs 함수 포인터 vs 람다 vs std::function으로 알고리즘 교체하기
C++ Strategy 패턴으로 알고리즘을 캡슐화하고 런타임에 교체하는 방법. 다형성, 함수 포인터, 람다, std::function 네 가지 구현 비교, 압축 알고리즘 예제와 성능 비교를 정리합니다.
-
C++ 객체 슬라이싱: 파생 부분이 잘려 나가는 네 가지 경우와 다형성 지키는 법
파생 객체를 기반 클래스 값으로 넘기거나 반환하고, 대입하거나 vector에 담는 네 가지 경우에 파생 부분이 잘려 나가는 이유를 메모리 레이아웃으로 보여주고, 참조·포인터·스마트 포인터와 복사 방지로 다형성을 지키는 법을 설명합니다.
-
C++ Factory 패턴 비교: Simple Factory, Factory Method, Abstract Factory, 자동 등록
C++ Factory 패턴으로 객체 생성을 캡슐화하는 방법. Simple Factory, Factory Method, Abstract Factory의 차이, 자동 등록 팩토리, 플러그인 시스템 예제를 정리합니다.