2009-11-21 7 views
0

포인터를 사용하지 않고 기본 클래스를 컬렉션 값으로 사용하여 추상 기본 클래스를 구현하는 클래스의 STL 컬렉션을 만들려면 어떻게해야합니까?추상 기본 클래스의 C++ 컬렉션

내가 구현할 수있는 Boost에는 뭔가가 있습니까? 컬렉션은 구체적으로 map입니다.

감사

답변

4

포인터를 완전히 피할 수는 없습니다. Object slicing을 피하려면 포인터를 컬렉션에 저장해야합니다. 당신은

컴파일러가 작업을 수행하는 코드를 생성 할 방법에 대해 생각할 수 없다 ptr_map

0

: 부스트 꽤 잘 포인터를 숨 깁니다 용기를 가지고? 포인터가 없다는 것은 저장소가 정적 배열 등에서 "컬렉션 자체에"할당되어야한다는 것을 의미합니다. 그러나 하위 클래스에 필요한 저장소가 변경 될 수 있습니다! 그렇다면 컴파일러는 어떻게 할 것입니까? ... 할 수 없습니다 ...

관련 문제