에 입력 할 수 있습니까?
클래스의 직렬화 및 비 직렬화를 수행하는 코드가 있습니다 ... 첫 번째 바이트는 클래스 유형을 인코딩하는 enum입니다. 모두 같은 기지에서 상속) .. 예.int (enum)을
Color* c;
auto classType == read_byte(buffer);
switch (classType)
case eBlue:
{
c = new Blue(buffer);
}
case eGray:
{
c = new Gray(buffer)
}
//...
유형에 열거에서지도를 할 수있는 방법은 내가 원시 PTR의 IRL을 사용하지 않을 것입니다 OFC 그래서 스위치를
c = new enum2Type(buffer);
편집을 대체 할 수있다. :
'표준 : :지도'? –
juanchopanza
Google은 "가상 생성자"에 대해 몇 가지 아이디어를 제공합니다. –
'관련'링크도 확인하십시오. http://stackoverflow.com/questions/4968691/c-create-object-of-certain-type-mapped-to-an-enum 및 http://stackoverflow.com/questions/4995378/c-template-for- 매핑 struct-type-to-enum –