불필요한 상속 관계를 없앤다는 말은 좀 이상하고, 템플릿을 사용해서 상속을 대체할 수 있는 경우가 있습니다. 말하자면 정적인 다형성(static polymorphism / compile-time polymorphism)을 구현하기 위해 템플릿을 사용할 수 있습니다. 상속을 통한 다형성은 동적입니다 (dynamic polymorohism / runtime polymorphism). 항상 어느 쪽이 더 좋다고 말할 수는 없고 서로 보완적이라고 생각하시는 것이 좋습니다. 짧게 설명하기는 힘들 듯 하고, 이미 세상에 나와 있는 좋은 설명이 많이 있을테니 c++ static polymorphism / c++ crtp 등으로 검색하셔서 차근 차근 시간을 두고 공부를 해보시는 것이 좋을 것 같습니다.
불필요한 상속 관계를 없앤다는 말은 좀 이상하고,
불필요한 상속 관계를 없앤다는 말은 좀 이상하고, 템플릿을 사용해서 상속을 대체할 수 있는 경우가 있습니다. 말하자면 정적인 다형성(static polymorphism / compile-time polymorphism)을 구현하기 위해 템플릿을 사용할 수 있습니다. 상속을 통한 다형성은 동적입니다 (dynamic polymorohism / runtime polymorphism). 항상 어느 쪽이 더 좋다고 말할 수는 없고 서로 보완적이라고 생각하시는 것이 좋습니다. 짧게 설명하기는 힘들 듯 하고, 이미 세상에 나와 있는 좋은 설명이 많이 있을테니 c++ static polymorphism / c++ crtp 등으로 검색하셔서 차근 차근 시간을 두고 공부를 해보시는 것이 좋을 것 같습니다.
좋은 답변 감사합니다.
어떻게 검색할지도 몰라서 좀 애를 먹었는데 c++ static polymorphism 이라고 검색해보면 되는군요!!
Curiously recurring template pattern
virtual 함수가 들어가면 프로그램이 느려질 수 있는데, 이것을 피하면서도 polymorphism을 구현하는 것이 목적입니다.
Curiously recurring template pattern 으로도 한 번 검색해 보세요
댓글 달기