CHARBUFFER

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 - 13 oct. 2004 à 20:05
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 - 19 oct. 2004 à 00:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26800-charbuffer

morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
19 oct. 2004 à 00:17
j ai mit <headers.h> juste pour situer où doit se placer le using namespace std c tout c un exemple
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 oct. 2004 à 23:34
non, <headers>

et savoir ce qu'implique using namespace std;
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
18 oct. 2004 à 23:16
<headers.h>
using namespace std;

pour eviter des mettre des std:: un peu partout ;)
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
18 oct. 2004 à 19:21
oui ca existe deja, c'est le model basic_string de la stl

pas la peine de te fatiguer a reinventer la roue :)
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
18 oct. 2004 à 10:16
C'est vrai... Maintenant je crois que cette classe existe déja dans la stl je crois. Son but est purement pédagogique (pour moi) et les débutant qui se mettre au c++.
Je pense effectivement qu'un truc utile et terminé serait plus intéressant. Je vais y penser

Merci
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
15 oct. 2004 à 20:30
Moi ce qui m'interroge, c'est pourquoi créer ce genre de classe et se limiter alors que tu pourrais largement exploiter la surcharge operateur par exemple pour cancaténer 2 chaines, ou mettre des nombre dans des chaines....
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
14 oct. 2004 à 18:44
J'ai recréé un projet vide et j'ai recompilé
Ca marche
Merci pour l'info
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
14 oct. 2004 à 18:11
Va dans les propriétés du projet et choisi "Ne pas utiliser les entetes précompilées".

Et a l'avenir si tu veux eviter ce probleme, n'utilises pas le Wizard de VC++ pour créer tes projets, mais crées un espace de travail vierge et ajoutes y au fur et a mesure tes fichiers (*.cpp, *.h, ...).

Shell
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
14 oct. 2004 à 18:07
Effectivement, un des premiers trucs que j'ai appris ici c'est de ne pas utiliser les MFC mais cette ligne est collée par VisualC et si je le vire je n'arrive plus à compiler koi ke ce soit !!!!!

unexpected end of file while looking for precompiled header directive
(pour chaque classe du projet)

T'as une idée ?
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
14 oct. 2004 à 17:44
Tu utilises pas de MFC apparement alors pourquoi inclues tu l'entete précompilé stdafx.h ???
Vire ce truc c'est moche et ca fait peur.

Shell
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
14 oct. 2004 à 11:50
Oooups !! en fait c'est

// Si tampon alloué
if (this->m_pszBuffer) HeapFree();

Car le buffer est initialisé à Null et le reste si aucun tampon n'a été allouée

Merci
Je corrige le source
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 oct. 2004 à 11:26
Dans le destructeur, pourquoi teste si:
if(! this->m_hHeapHandle) tenteDestruct
Ne serait pas plutot:
if(this->m_hHeapHandle) tenteDestruct ???

Desole mais pas le temps de tester tout cela.
thiosyiasar Messages postés 186 Date d'inscription lundi 11 mars 2002 Statut Membre Dernière intervention 30 novembre 2010 3
14 oct. 2004 à 10:43
Merci pour vos commentaire
En fait j'utilise this comme en java, pour que le code soit le plus rigoureux possible.

Par contre, avez vous eu le même pb que moi lors des test avec cette classes ?

Free Heap block 1345b0 modified at 1345e4 after it was freed

Ca se produit sur le return 0; du main() si on initialise la taille initiale à 100 par exemple. à 0 ou 32 ca marche !!!
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
13 oct. 2004 à 21:06
ou pour lever une ambiguité de nom

void Foo::bar( int num )
{
this->num = num;
}
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
13 oct. 2004 à 21:00
ou pour la réécriture d'un operateur d'affectation pour eviter l'autoaffectation dont le resultat est plus que douteux.....ou encore pour appeler une autre methode de cette classe avec cet objet
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
13 oct. 2004 à 20:05
salut ;)
bon juste une remarque pas immensément importante... à l'interieur d'une méthode de classe, si tu fais référence a un champ de cette classe ou a une autre methode, t'es pas obligé de mettre this-> devant. this est surtout utile quand une méthode renvoie un pointeur (ou une reference) vers l'objet considéré.
a++
Rejoignez-nous