반응형 이상하게반복되는템플릿패턴1 이상하게 반복되는 템플릿 패턴(Curiously Recurring Template Pattern, CRTP) 이상하게 반복되는 템플릿 패턴 CRTP(Curiously Recurring Template Pattern)는 클래스 x가 x 자체를 사용하는 클래스 템플릿 인스턴스화에서 파생되는 C++의 관용어이다. 이를 통해 가상 함수 없이도 동일한 함수를 여러 클래스에서 사용할 수 있는 정적 다형성을 구현할 수 있다. 하지만 이 패턴을 사용하는데는 몇 가지 문제가 있는데 주요 문제 중 하나는 메서드 숨김으로, 파생 클래스가 부모 클래스의 메서드를 실수로 숨실 수 있다는 것이다. (동일한 메서드명으로 선언) 추가로 CRTP 기본 클래스가 템플릿이어야 하므로 복잡성이 증가되고 디버깅하기 어려운 오류가 발생할 수 있다는 것이다. 메서드 숨김 문제를 해결하려면 베이스 클래스에서 메서드를 선언할 때 가상 키워드(virtual.. 2023. 9. 25. 이전 1 다음