Je ré-essaye :)
Tu ne peux pas utiliser fichier.write( reinterpret_cast<const char *>( &nom_de_la_classe_ou_de_la_struct ), sizeof( la_classe )) pour stocker une instance de classe dans un fichier par exemple et ensuite faire un read() pour récupérer ton objet.
Ce que je voulais dire, c'est que la sérialisation d'une classe ne se fait pas par fichier.write( reinterpret_cast<const char *>( &nom_de_la_classe_ou_de_la_struct ), sizeof( la_classe ) ), je ne parlais pas des classes de gestion de fichiers.
Kaid << "Que se passe-t'il si tu as des pointeurs dans ta classe ? Des entiers ? "
Kaid >> reinterpret_cast< const char *> sert à quoi à ton avis ?
Si tu veux vraiment que j'oublie t'as intérêt à me donner plusieurs bons arguments car avec fichier.read c'est excellent pour faire de la base de données avec écriture et lecture aléatoire dans les fichiers. C'est Rapide, Efficace et en plus il y moins de bugs à gérer car le compilo fait tous pour toi.
Que demander de mieux :)
trinitacs oublie absolument le fichier.write( reinterpret_cast<const char *>( &nom_de_la_classe_ou_de_la_struct ), sizeof( la_classe ) ) ;
Que se passe-t'il si tu as des pointeurs dans ta classe ? Des entiers ?
Tu dis que la classe B fait 4 octects. Donc si tu es sur un compilo 32 bits, ce qui est sur à 99%, sizeof ne compte que les variables pour les classes?!? Je croyais que ça comptait aussi les fonctions ?!? Bon d'accord alors voilà mon histoire
Petite histoire: si tu fais une struc similaire à la classe B (ne rigoles pas), en metant simplement un entier dans la struct et adieu les jolis contructeurs et destructeurs. Donc sizeof de la struct renverra la même chose que pour la classe B, si t'es pas d'accord tu m'arrête mais d'après ce que tu as écrit à la fin du code c'est ça !
le dénouement (suspens, suspens, suspens): donc je peux aussi bien écrire:
fichier.write( reinterpret_cast<const char *>( &nom_de_la_classe_ou_de_la_struct ), sizeof( la_classe ) ) ;
Pour écrire une structure ou une classe dans un fichier.
pour une structure (ce qui marche) que pour une classe ??
Par ce que je croyais que ça allait écrire les toutes les fonctions de la classes, voilà pourquoi je vous raconte cette histoire qui va me peut-être me ravir car je préfèere les classes aux structs.
J'espèere que tu as tout compris sinon j'essayerai de me faire comprendre autrement :)
Sincérement tu écris des codes sources interressant et en plus richement commentés, bravo.
24 déc. 2003 à 12:23
22 avril 2003 à 23:50
:)
15 nov. 2002 à 18:45
15 nov. 2002 à 08:25
11 nov. 2002 à 18:17
Tu ne peux pas utiliser fichier.write( reinterpret_cast<const char *>( &nom_de_la_classe_ou_de_la_struct ), sizeof( la_classe )) pour stocker une instance de classe dans un fichier par exemple et ensuite faire un read() pour récupérer ton objet.