Charger un objet enregister et l'instancier

bleuerouge Messages postés 12 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 1 décembre 2014 - 13 déc. 2005 à 13:17
bleuerouge Messages postés 12 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 1 décembre 2014 - 13 déc. 2005 à 16:42
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

lordkraken Messages postés 9 Date d'inscription vendredi 9 septembre 2005 Statut Membre Dernière intervention 20 décembre 2005
13 déc. 2005 à 13:27
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();
0
bleuerouge Messages postés 12 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 1 décembre 2014
13 déc. 2005 à 16:42
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
0
Rejoignez-nous