CLASSE STRING PERSONALISÉE POUR LES VB-ADDICTED :)
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 2007
-
28 avril 2006 à 10:33
henrimaselati
Messages postés6Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention25 septembre 2007
-
21 déc. 2006 à 04:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
nightlord666
Messages postés746Date d'inscriptionvendredi 17 juin 2005StatutMembreDernière intervention23 mai 200710 28 avril 2006 à 10:41
Très mauvais d'implémenter tes fonctions dans ton .h : par convention, on fait ça dans un fichier .cpp à part (StrIZI.cpp par exemple) qui inclue le header. Ca permet de mieux contrôler la compilation de ton code.
Autre chose, tu a oublié dans ton header les directives :
#ifndef __STRIZI_H__
#define __STRIZI_H__
//Le code
#endif
Ces directives sont TRES importantes : elles protègent des erreurs (ou warning selon les compilateurs) de "multiple symbol redefinition", et des fatal error d'inclusions infinies, comme par exemple :
//StrIZI.h
#include "fff.h"
//fff.h
#include "StrIZI.h"
On se retrouve dans une boucle infinie pour le compilateur --> Erreur de compilation.
Dans ta fonction Val, pourquoi n'utilise tu pas la fonction atoi si le système est égal à 10 ?
A la fin :
if (Result==StrNull)Result="0";
return Result;
Pourquoi créer une chaine rien que pour une comparaison ? Je te conseillerai de le remplacer par ça :
if(!strcmp(Result.Chaine, "")) Result = "0"
return Result;
Bon sinon, la classe m'a l'air simple d'utilisation, mais il aurait fallu rajouter une fonction du genre sprintf pour mettre des nombres et tout ça. Bon, ca vaut bien un 7 on va dire.
21 déc. 2006 à 04:29
29 avril 2006 à 17:33
28 avril 2006 à 19:43
28 avril 2006 à 19:12
28 avril 2006 à 11:23
cmp byte ptr[Result.Chaine], 0
28 avril 2006 à 11:09
28 avril 2006 à 11:07
28 avril 2006 à 10:41
Autre chose, tu a oublié dans ton header les directives :
#ifndef __STRIZI_H__
#define __STRIZI_H__
//Le code
#endif
Ces directives sont TRES importantes : elles protègent des erreurs (ou warning selon les compilateurs) de "multiple symbol redefinition", et des fatal error d'inclusions infinies, comme par exemple :
//StrIZI.h
#include "fff.h"
//fff.h
#include "StrIZI.h"
On se retrouve dans une boucle infinie pour le compilateur --> Erreur de compilation.
Dans ta fonction Val, pourquoi n'utilise tu pas la fonction atoi si le système est égal à 10 ?
A la fin :
if (Result==StrNull)Result="0";
return Result;
Pourquoi créer une chaine rien que pour une comparaison ? Je te conseillerai de le remplacer par ça :
if(!strcmp(Result.Chaine, "")) Result = "0"
return Result;
Bon sinon, la classe m'a l'air simple d'utilisation, mais il aurait fallu rajouter une fonction du genre sprintf pour mettre des nombres et tout ça. Bon, ca vaut bien un 7 on va dire.