Charger un objet enregister et l'instancier

Signaler
Messages postés
12
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
1 décembre 2014
-
Messages postés
12
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
1 décembre 2014
-
Bonjour , je suis en train de faire un petit projet de jeu de role, rien de bien pretencieux, mias bon il faut bien que je m'y mette...
J'ai diveirs probleme notemment en ce qui concerne la sauvegarde et l'enregistrement de partie. J'ai une classe partie qui contient toute les donnes de la partie (cartes , personnages ,points , ect ..) , engros comme j'instancie la classe partie pour creer un partie ,mon idée est d'enregistrer la classe tel qu'elle est , ensuite quand jez veut la charger, je la charge en memoire ,je cree un pointeur vers elle est je reprends la partie la ou elle etais terminer . :)
Le probleme, c'est que je ne comprend pas tres bien comment charger puis rediriger ensuite un pointeur vers la zone de memoire, j'arrive pas a caster notemment. donc si quelqu'iun pouvait me donner un coup de main maerci d'avance

voici un extrait de mon code

class Partie :    public Jeu 
{
private:
    int numeroPartie;
    string nomPartie;
    int numeroHero;
    int numeroTour;
    string dateCreation;
    unsigned long highScore;

public:

    Partie()
    {
        numeroPartie    =    1;
        numeroHero        =    1;
        numeroTour        =    1;
        dateCreation    =    "01/01/06";
        highScore        =    0;
    }

    void demarrer(void);                    // Demarre la partie
    void creer(string);                        // Cree une nouvelle partie
    void arreter();                            // Arrete la partie
    void charger(string);                    // charge un partie deja existante
    unsigned long afficherHighScore();        // Affiche le meilleur score
    double recupererTour();                    // renvoie le numero du tour en cours

};

                    // extrait de partie. charger

                    cout << "chargement partie" << endl;
                    
                    fp.open ((char *) nomPartie.c_str(),ios::out|ios::binary|ios::app);    // Ouverture du fichier

                    Partie*  la_partie;                                    // Creation d'un poiteur de type partie    
                      fp.read( nom_partie_a_chargee,sizeof(Partie));                    // Creer une instance de la partie avec le nom donn&#233;e
                 istream read
                    fp.close();                                            // Ferme le fichier
                    la_partie = (Partie) fp;                            // Pointe vers l'adresse de fp
                    la_partie->demarrer();                                // Le jeu peut commencer
                    
                

2 réponses

Messages postés
9
Date d'inscription
vendredi 9 septembre 2005
Statut
Membre
Dernière intervention
20 décembre 2005

deja essaye qq chose comme ca

Partie* la_partie = new Partie();
la_partie = (Partie) fp.read( nom_partie_a_chargee, sizeof(Partie)); // Creer une instance de la partie avec le nom donnée
fp.close();
Messages postés
12
Date d'inscription
jeudi 7 janvier 2010
Statut
Membre
Dernière intervention
1 décembre 2014

bonjour , votre version me repond :

error C2440: 'cast de type' : impossible de convertir de 'std::basic_istream<_Elem,_Traits>::_Myt' en 'Partie'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]

Je sais pas si c'est visual mais j'arrive pas du tout a caster