Template et fichier => urgent svp

Signaler
Messages postés
18
Date d'inscription
dimanche 19 février 2006
Statut
Membre
Dernière intervention
13 avril 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
J'ai une classe qui a comme variable un template. Je dois mémoriser cette classe dans un fichier. Le template demande-t-il une technique spéciale ou se sauvegarde comme un tableau ??
Merci de vos réponses

13 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Tu n'as pas compris ce qu'est un template. Ca n'a rien de magique !
c'est juste un mécanisme pour éviter d'avoir à tapper soi meme
plusieurs fois la meme chose. T'as classe n'a jamais de variable
template, elle a forcément un type bien défini.

Si maintenant, tu ne connais pas le type au moment de l'enregistrement,
il faut également que tu enregistres le type pour savoir comment
l'ouvrir la prochaine fois que tu lanceras ton programme.
Messages postés
18
Date d'inscription
dimanche 19 février 2006
Statut
Membre
Dernière intervention
13 avril 2006

bien... voila ma classe :


class message
{
private:
unsigned int numero;
AdresseEMail expediteur;
VecteurTrie destinataire;
bool urgent; // 1 urgent, 0 pas urgent
bool statut; // 1 lu, 0 pas lu
string sujet;
string texte;
int NbDest;

public:
message ();
message(const message &);
~message ();

//APPEL DES FONCTIONS SET
void setExpediteur(string& e);
void setDestinataire(string& d);
void setUrgent(bool u);
void setStatut(bool s){statut=s;}
void setSujet (string s);
void setTexte(string t){texte=t;}
void setNbDest(int n){NbDest=n;}
//COMPOSITION MESSAGE
void compExpediteur();
void compDestinataire();
void composer();
...
};

comment procèderai tu par exemple pour écrire dans un fichier une occurence de la classe message ?
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
luthor> T'as mal lu. Elle a bel et bien une variable template a l'interieure de sa classe. Sa question est de savoir comment enregistrer cette variable ainsi que les autres dans un fichier.

Shell
Messages postés
18
Date d'inscription
dimanche 19 février 2006
Statut
Membre
Dernière intervention
13 avril 2006

quelqu'un peut m'aider svp ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Tu écris par exemple une méthode serialize et une deserialize pour la classe AdresseEMail. Après tu parcours ton vecteur et pour chaque adresse tu la lis ou tu l'écris selon ce que tu es en train de faire. Pour les autres données de ta classes il n'y a aucun problème
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
DeathCrash => "VecteurTrie destinataire;"
Ce n'est pas une variable template ca. De toute facon, un type template, ok, mais une variable template, ca correspond à quoi ?



Et sinon, je ferais comme
vecchio56, c'est la classe AdresseEmail, qui se charge d'enregistrer
ses données ou de les convertir en un truc enregistrable. Le type
AdresseEmail, doit pas etre loin d'un string non ? donc
l'enregistrement doit se faire assez facilement.



Ah, je crois que je viens de comprendre ce que tu demandais najla. Si c'est bien un vecteur (VecteurTrie), tu peux l'enregistrer comme un tableau puisque la mémoire est alloué contiguement (ou continuement ?)
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Hmmm ...
Tu sais que string, c'est pas vraiment un type ...
std::string c'est :
typedef basic_string<char> string;

Pourtant tu traites string comme si c'était un int, un char, enfin un type fondamental quoi.
Pourquoi ça serait différent pour le vector?
Par contre pour _enregistrer un tableau dans un fichier_ faut que tu te trouves ta méthode d'écriture et celle de lecture qui va avec et qui sera capable de recréér le même tableau. Mais rien de bien dur en vue :)

Bonne progr'
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Par définition du typedef, "string" est bien un type non ?

Par contre, je comprends pas ce que tu dis a propos du vector.
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

Oui mais ce que je voulais dire c'est que string était en fait une instance d'une class template paramétrée en char.
Mais faudrait savoir comment l'auteur veut enregistrer ... membre par membre ou sérialiser ... ?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
On s'en fout que string provienne d'une classe paramétrée, non?
Messages postés
95
Date d'inscription
mardi 9 mars 2004
Statut
Membre
Dernière intervention
20 mars 2006

J'ai une classe qui a comme variable un template. Je dois mémoriser
cette classe dans un fichier. Le template demande-t-il une technique
spéciale ou se sauvegarde comme un tableau ??
<<< je répondais à cela.
Sinon oui, on s'en fout :)
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Une autre solution est d'erengistrer tes données dans une structure, que tu enregistreras ensuite dans un fichier sous forme binaire.
Tu pourras ainsi ecrire et lire tes données très facillement, connaissant la taille de ta structure.

A toi d'adapter en conséquence pour le vecteur.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
Structure ou classe, ca ne change pas grand chose au problème...