IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] Serialisation et polymorphisme


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Par défaut [MFC] Serialisation et polymorphisme
    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:
    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);
    --- chargement:
    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);
    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 !
    A terme, je voudrai serialiser des conteneur entiers pouvant contenir un nombre variable de CInfo et de CInfoDerived.
    Une idée ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Par défaut
    Bon, en fait j'ai trouvé. Il suffisait de passer par des pointeurs sur objets et d'utiliser l'operateur ">>" qui au chargement alloue la mémoire et crée automatiquement l'objet du bon type.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CInfo * Info1;
    CInfo * Info2;
    CArchive ar(&file, CArchive::load);
    ar >> Info1;
    ar >> Info2;
    et dans Info2 j'ai bien un objet de type réel CInfoDerived. Aller, plus qu'a gérer ca sur les collections d'objets héterogenes.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(problemResolu)
       Click(BoutonResolu);
    else
       PoserQuestion();

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Par défaut
    ok, c'est fait !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. serialisation et polymorphisme
    Par pingoui dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/09/2008, 11h32
  2. Réponses: 2
    Dernier message: 15/03/2006, 18h48
  3. Réponses: 1
    Dernier message: 15/12/2005, 09h45
  4. [MFC] serialisation (encore ...)
    Par Gloubi99 dans le forum MFC
    Réponses: 4
    Dernier message: 15/09/2005, 11h53
  5. [MFC] Serialisation
    Par Gloubi99 dans le forum MFC
    Réponses: 16
    Dernier message: 05/09/2005, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo