0
상속 계층 중 하나에 중복 된 코드로 인해 어려움을 겪고 있습니다. function smile() 함수 내에서 코드가 중복되지 않도록하려면 어떻게해야합니까?C++에서 상속 계층 구조에 코드 중복 방지
변수 _a
이 기본 클래스에 존재하지 않는다는 사실을 감안할 때 거기에서 함수를 이동할 수 없습니다. 또한 template<typename T> void smile(T& a) { a++; }
과 같은 템플릿 함수를 만드는 것은 실제로 나에게 해결책이 아닙니다. 내 실제 코드는 좀 더 복잡하고 현재의 디자인을 적용하는 것은 불가능하지는 않지만 그러한 솔루션은 매우 지저분 할 것입니다.
또한 누구나 OOP 및 템플릿 원칙을 사용하여 실제로 C++에서 코드를 디자인하는 방법을 가르치는 훌륭한 책을 알고 있습니까?
너의 본보기. –
실제 상황의 어떤면에서 템플릿이 유효한 옵션이 아닌지 확인하는 것은 흥미로운 일입니다. –
@ VaughnCato가 말했듯이, Template는 smile()의 중복 구현을 피하기에 충분할 것입니다. 하지만 할 수 없다면 다중 상속에 대해 고려하지 않으시겠습니까? 적절한 제한이 있으면 좋을 수도 있습니다. – dgregory