Hi tout le monde !
Petite question en MFC sur la serialisation. J'ai une classe CInfo et une autre derivant de CInfo: CInfoDerived.
Je souhaite serialiser des objets de ces 2 types dans un fichier (en passant pas les CArchive) puis les recharger plus tard.
Le truc, c'est que, au chargement, je ne sais pas si l'objet est de type CInfo ou CInfoDerivee. Donc je souhaiterai charger mes objets en tant que CInfo, meme si physiquement ce sont des CInfoDerived.
--- enregistrement:
--- chargement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CInfo Info(); CInfoDerived Derived(); CArchive ar(&file, CArchive::store); Info.Serialize(ar); Derived.Serialize(ar);
or, en sortie mon pointeur tmp est NULL, indiquant que le dynamic cast ne marche pas... Pourtant c'est bien un CInfo Derivee que j'ai enregistré, pas un CInfo tout court !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CInfo Info1; CInfo Info2; CArchive ar(&file, CArchive::load); Info1.Serialize(ar); Info2.Serialize(ar); CInfoDerived * tmp = dynamic_cast<CInfoDerived *>(&Info2);
A terme, je voudrai serialiser des conteneur entiers pouvant contenir un nombre variable de CInfo et de CInfoDerived.
Une idée ?
Partager