태그: virtual
8편
-
C++ 소멸자와 RAII: 가상 소멸자, 규칙 0, 소멸자에서의 예외
소멸자 호출 순서, 가상 소멸자가 필요한 정확한 조건과 대안(protected 비가상), Rule of 0/3/5, 소멸자에서의 예외·this 사용 함정, 스마트 포인터와의 조합까지 실무 기준으로 정리합니다.
-
C++ 가상 함수 현장 매뉴얼 | 설계·비용·override·실무 패턴 한글 정리
가상 함수를 언제 쓰고 언제 템플릿으로 대체할지, override/final로 실수를 줄이는 법, 다형 호출 비용과 캐시 친화 설계까지. 현업에서 바로 적용 가능한 체크리스트와 안티패턴을 정리합니다.
-
C++ 가상 소멸자가 없을 때 생기는 누수: virtual·protected 소멸자 선택 기준
기반 클래스 포인터로 파생 객체를 delete했는데 파생 소멸자가 불리지 않아 메모리와 파일 핸들이 새는 이유를 보여주고, virtual 소멸자, 순수 가상 소멸자, protected 소멸자 중 언제 무엇을 쓰는지와 vtable 오버헤드를 설명합니다.
-
C++ undefined reference to vtable: 첫 비인라인 가상 함수 정의 누락과 해결
undefined reference to vtable 링커 에러는 대개 클래스의 첫 번째 비인라인 가상 함수나 소멸자의 정의가 빠졌을 때 납니다. vtable이 어느 번역 단위에 생성되는지부터 설명하고, .cpp 정의 추가, 인라인 정의, = default로 고치는 방법을 보여줍니다.
-
C++ 가상 함수 심화 가이드 | vtable·vptr, 가상 상속, 추상 클래스, 가상 소멸자
C++ 가상 함수가 런타임에 올바른 오버라이드를 호출하는 원리(vtable·vptr), override와 final, 순수 가상 함수와 추상 클래스, 가상 소멸자, 다이아몬드 상속을 예제로 설명하고, 생성자 안의 가상 호출·기본 인자·이름 가림 같은 함정을 짚습니다.
-
C++ override와 final: 시그니처 실수를 컴파일 에러로 잡기와 devirtualization
override를 붙이면 오타나 const 누락으로 시그니처가 어긋나 새 가상 함수가 생기는 실수를 컴파일 에러로 잡을 수 있습니다. final로 클래스 상속이나 함수 재정의를 막는 기준과 final이 devirtualization으로 이어지는 조건을 예제로 설명합니다.
-
C++ 상속과 다형성: virtual 함수, 추상 클래스, 가상 소멸자 누락과 슬라이싱
C++의 상속(Inheritance)과 다형성(Polymorphism)을 게임 캐릭터·결제 시스템 예제로 정리합니다. virtual 함수, 순수 가상 함수, 가상 소멸자 누락과 슬라이싱 같은 실무에서 자주 겪는 함정을 다룹니다.
-
C++ 다이아몬드 상속 문제: virtual 상속의 동작과 초기화 순서, 컴포지션 대안
C++ 다중 상속에서 같은 기본 클래스가 두 번 포함되는 다이아몬드 문제를 예제로 재현하고, virtual 상속이 객체 레이아웃을 바꿔 이를 해결하는 방식, 최하위 클래스가 가상 기본 클래스를 초기화하는 순서, 컴포지션 대안을 설명합니다.