지정 :캐스트가없는 알 수없는 유형의 객체 저장 및 검색
클래스 A의 객체에는 객체 배열이 들어 있습니다.
각 개체는 IB 인터페이스를 구현해야하기 때문에 IB 인터페이스를 구현해야합니다.
이러한 개체는 클라이언트에 의해 클래스 A의 개체에 전달되며 형식 C 또는 그 자식입니다. A는이 오브젝트를 다시 클라이언트로 리턴해야합니다.
문제 :는 IB에 대해, C에 대해 아무것도 몰라해야하지만, A는 C.
C의 모든 표준 용액 ++ 안전하지 않은 캐스트없이이 거기를 반환해야합니다 <>?
는 소리. C++에는'class'와는 별도의 "인터페이스"라는 개념이 없습니다. 이와 같이, IB는 클래스 여야하며, A는 단순히 IB에 (포인터 | 참조)를 반환 할 수 있습니다. C는 반드시 (분명히) IB로부터 파생되어야하지만 A는 그것을 알 필요가 없습니다. –
이 대답은 당신에게 몇 가지 아이디어를 줄 수 있습니다 : http://stackoverflow.com/questions/7950711/conversion-from-subclass-to-superclass-to-subclass/7950896#7950896 – ssube
당신은 * 안전하지 않은 캐스트는 "> * static_cast' 등은 안전하지 않습니다. 제대로 사용하면 안전합니다. – chris