0
직렬화 (XML for now) 클래스를 구현하려고합니다. 아이디어는 모든 파생 클래스가 멤버를 기본 클래스에 등록 할 수 있고 기본 모듈을 XML 형식으로 작성할 수 있다는 것입니다.템플릿 벡터의 타입 정보를 저장하는 방법
코드는 지금까지 너무 좋은이
class IXMLINF
{
protected:
struct INFObj
{
union MemPtr
{
int* piMem;
char* pstrMem;
IXMLINF* pINFMem;
}
MemPtr memObj;
};
vec<INFObj*> m_INFObjVec;
void addMemToINF(int* piMem)
{
INFObj* pObj = new INFObj;
pObj->memObj.piMem = piMem;
m_INFObjVec.append(pObj);
}
void addMemToINF(char* pstrMem);
void addMemToINF(IXMLINF* pINFMem);
void writeToXML()
{
for_each_element_in_m_INFObjVec
{
//if int or char process to XML
//else if IXMINF call its writeToXML
}
}
}
같이 보입니다. 그러나 나는 또한 유형의 벡터를 XML에 쓸 수 있기를 원한다. INT와 문자를 들어 *는 쉽지만 이
한 가지 방법이 될 수
(VEC는 VEC에서 다른 유형의) 일반적인 방법으로 IXMLINF 파생 클래스의 벡터를 위해 작업을 수행하는 방법에<class T>void addMemToINF(vec<T*>* pXMem)
{
//T is a class derived from IXMLINF
void* pvMem = (void*)pXMem
//Somehow store type of T
Type = T
}
void writeToXML()
{
....
vec<Type*>* pVec = (vec<Type*>*)pvMem ;
}
나는 것 Type informatio (Type = T step) 또는 내가하고 싶은 일을 수행하기위한 다른 방법을 저장하는 방법에 대한 제안을 부탁드립니다.