C++에서 Unity3d에있는 것과 비슷한 "구성 요소 관리자"클래스를 만들려고합니다. 내가 원하는 것은 BaseComponent라고하는 클래스의 파생 된 유형을 보유 할 수있는 컨테이너 클래스입니다. 단결, 하나의 내가 C에서 동일한 인터페이스를 ++ 싶습니다() 타입 DerivedComponentType &형식 안전 C++ "구성 요소 관리자"템플릿 만들기
입니다 반환하는
manager.GetComponent을 통해 형태 보증 된 방법으로 제네릭을 사용하여 구성 요소에 대해 요청할 수 있습니다. AddComponent 함수를 통해 구성 요소를 추가하면 모든 프로세스가 사용 관점에서 유형 안전성이 보장됩니다.
저는 문자열로 식별하는 것을 피하기 위해 여기에서 노력하고 있습니다. 파생 된 모든 유형에 동일한 이름의 정적 멤버 함수를 제공하고 그 주소를 클래스 인스턴스에 대한 맵 인덱스로 사용하여이 작업을 수행 할 수도 있음을 알고 있습니다. 구성 요소 관리자의 사용자가 자신의 구성 요소를 파생하도록 선택해야이 함수가 있는지 확인하지 않아도되도록이 작업을 수행하지 않을 것입니다.
감사합니다.
아마도 이것이 어떻게 사용되는지에 대한 간단한 설명으로 우리를 계몽 할 수 있습니까? 원하는 인터페이스를 사용하는 가상의 코드를 보여줍니다. 계층 구조에 대해 이야기하고 있기 때문에 최소한 두 가지 유형을 사용해야합니다. –
DerivedComponentType의 인스턴스 인 첫 번째 구성 요소를 반환합니까? –