2010-06-06 7 views
2

Je ne sais pas si c'est possible, mais j'ai une classe et j'en ai fait une instance. Je mets aussi des choses dedans. Il a des vecteurs et d'autres choses. Je me demandais si je pouvais sauvegarder son contenu (l'instance) dans un fichier binaire, puis le recharger et le convertir depuis le fichier. MerciChargement et enregistrement d'une classe dans un fichier binaire

Répondre

3

Oui, parfois, un peu ...

sérialisation est un problème délicat. Ne le résolvez pas vous-même (c'est-à-dire ne réinventez pas la roue ... beaucoup de gens intelligents l'ont déjà fait). Ce que vous avez décrit fonctionne dans un environnement contraint:

  • Vos machines de lecture et d'écriture ont le même endianness.
  • Votre classe contient des données uniquement dans son empreinte (pas de pointeurs ou d'objets avec des pointeurs).
  • Ce n'est pas pour le monde réel
    • le monde réel a généralement besoin de quelque chose de mieux
    • le monde réel veut généralement rétrocompatible contre les changements
    • le monde réel ne peut généralement pas anticiper les changements du matériel

Vous souhaitez probablement examiner différents schémas de sérialisation. Ils ont leurs propres avantages et inconvénients, que vous trouverez beaucoup d'informations sur StackOverflow. Pour commencer, examinez Google's protocol buffers, boost serialization et XML.

3

Chaque fois qu'il y a une question C++, la réponse est susceptible d'être Boost. Vérifiez Boost Serialization.

Questions connexes