|
안녕하세요 임프님!!
환절기 감기 조심하시구요.. ^^
참으로 머리아픈 문제가 생겼네요..
예를 들어... 구조체 A, B, C 가 있습니다.
이걸 리스트로 관리하려고 하는데 현재는 void*로 처리하는데 문제가 바로 형 변환입니다.
즉 리스트에 A, B, C 를 삽입하려면
void *data;
if ( type == 0 )
data = new A;
else if ( type == 1)
data = new B;
else if ( type == 2)
data = new C;
list->Add(data);
이렇게 했습니다.
그런데 이 거에 접근하려면 더욱 더 문제가 되네요. 타입을 알아야 멤버를 쓰니까요.
전 TypeList라고 int로 된 리스트를 하나 더 만들었습니다. 아래와 같이요
kind = *((int*)TypeList->Items[i]);
if ( kind == 0 )
(A*)list->Items[i]
else if ( kind == 1 )
(B*)list->Items[i]
.
.
.
게다가 문제는 저 구조체 종류가 40-50개를 넘는다는 거죠. 헐...
이렇게 되면 소스가 장난아니군요.. -_-;
글구 각 구조체들은 일부를 공유하긴 하지만 전혀 비슷한 구석도 없습니다. -_-
어떻게 해결책이 없을까요?
C++초보구요. 부탁드립니다.
|