Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1675 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  new dans instantiation dans constructeur ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

new dans instantiation dans constructeur ???

n°776204
ezeeckiel
Posté le 24-06-2004 à 15:53:11  profilanswer
 

Salut !
 
Je bosse sur xerces (enfin je débute) et j'ai trouvé un code d'exemple, mais impossible de le faire marcher.
Le voici :
SAXPrintHandlers::SAXPrintHandlers( const   char* const encodingName,        const XMLFormatter::UnRepFlags unRepFlags)          : fTarget(new LocalFileFormatTarget(goutputfile)) ,     fFormatter(
  encodingName,         fTarget,         XMLFormatter::NoEscapes,    unRepFlags )
{
}
SAXPrintHandlers::~SAXPrintHandlers()
{
 delete fTarget;
}
 
et voici l'erreur :
/home/.../XML/src/xerces-c-src_2_5_0/samples/SAXPrint/SAXPrintHandlers.cpp:189: error: parse
   error before `(' token  
et pour que vous situiez la ligne 189 c'est celle ou il y a le new
 
 
 
Au secours !!!
 
Olivier

mood
Publicité
Posté le 24-06-2004 à 15:53:11  profilanswer
 

n°776207
burgergold
5$? va chez l'diable!
Posté le 24-06-2004 à 15:54:02  profilanswer
 

mets ton code dans les balises de codes, c'est pas lisible comme ca


---------------
http://www.boincstats.com/signature/user_664861.gif
n°776223
ezeeckiel
Posté le 24-06-2004 à 16:00:49  profilanswer
 

euh je ne comprends pas cette histoire de balise de code, mais je peux l'arranger :
Salut !
 
Je bosse sur xerces (enfin je débute) et j'ai trouvé un code d'exemple, mais impossible de le faire marcher.
Le voici :
SAXPrintHandlers::SAXPrintHandlers( const char* const encodingName,  
const XMLFormatter::UnRepFlags unRepFlags)
: fTarget(new LocalFileFormatTarget(goutputfile)) ,
fFormatter(encodingName,      fTarget,       XMLFormatter::NoEscapes,    unRepFlags )
{
}
SAXPrintHandlers::~SAXPrintHandlers()
{
 delete fTarget;
}
 
et voici l'erreur :
/home/.../XML/src/xerces-c-src_2_5_0/samples/SAXPrint/SAXPrintHandlers.cpp:189: error: parse
   error before `(' token  
et pour que vous situiez la ligne 189 c'est celle ou il y a le new
 
Est-ce que ca va mieux ?
 
Olivier

n°776243
Joel F
Real men use unique_ptr
Posté le 24-06-2004 à 16:08:32  profilanswer
 

Comme ca :
 

Code :
  1. SAXPrintHandlers::SAXPrintHandlers( const char* const encodingName,
  2. const XMLFormatter::UnRepFlags unRepFlags) : fTarget(new LocalFileFormatTarget(goutputfile)) ,fFormatter(encodingName,fTarget,XMLFormatter::NoEscapes, unRepFlags )
  3. {
  4. }
  5. SAXPrintHandlers::~SAXPrintHandlers()
  6. {
  7. delete fTarget;
  8. }


Message édité par Joel F le 24-06-2004 à 16:08:57
n°776247
Joel F
Real men use unique_ptr
Posté le 24-06-2004 à 16:09:29  profilanswer
 

Pas de new dans les listes d'initialisation me semble t il, c'est mal :o
fait ton new dans ton constructeur.

n°776253
ezeeckiel
Posté le 24-06-2004 à 16:13:14  profilanswer
 

damned !  
c'est pas mon code, et visiblement il préfère (et semble même obligé) de le laisser là (si je mets le fFormatter dans le constructeur il me dit qu'il est private. C'est un code assez bourrin donc je me sens tout perdu, je ne sais plus ce que je peux/dois faire) . Y'a-t-il un moyen de corriger ou de apsser outre ca ?

n°776254
Taz
bisounours-codeur
Posté le 24-06-2004 à 16:13:37  profilanswer
 

non, ça marche très bien :o

n°776271
ezeeckiel
Posté le 24-06-2004 à 16:23:35  profilanswer
 

super je suis rassuré. je vais pouvoir utiliser ce code, mais j'ai quand même une question :
 
pourquoi ca compile pas chez moi ?
 
c'est quoi son problème ?

n°776291
Taz
bisounours-codeur
Posté le 24-06-2004 à 16:26:35  profilanswer
 

c'est quoi ça goutputfile :o

n°776301
Joel F
Real men use unique_ptr
Posté le 24-06-2004 à 16:28:26  profilanswer
 

Taz a écrit :

non, ça marche très bien :o


 
o_O bon OK ^^

mood
Publicité
Posté le 24-06-2004 à 16:28:26  profilanswer
 

n°776305
Taz
bisounours-codeur
Posté le 24-06-2004 à 16:29:19  profilanswer
 

c'esyt même carrément conseiller :o

n°776316
ezeeckiel
Posté le 24-06-2004 à 16:34:16  profilanswer
 

le goutputfile c'est le nom du fichier de sortie (hum je viens de faire une traduction... lol)
moi par exemple je l'ai mis à :
static char* goutputfile = "/home/[...]/XML/src/xerces-c-src_2_5_0/work/output.xml" ;
 
 
 
sinon je peux dire que ce forum est pas mal cool vu la rapidité des réponses !
Au secours !!
 
Olivier

n°776323
Taz
bisounours-codeur
Posté le 24-06-2004 à 16:36:00  profilanswer
 

static const char goutputfile[] = "/home/[...]/XML/src/xerces-c-src_2_5_0/work/output.xml" ;
 
 
sera déjà bien mieux ...

n°776327
Taz
bisounours-codeur
Posté le 24-06-2004 à 16:38:08  profilanswer
 

struct Foo
{
  Foo(int) { }
};
 
struct Bar
{
  Foo *f;
 
  Bar()
    :f( new Foo(42) )
  { }
};
 
[16:37:45][pts/33][/tmp][#25]
benoit@athlon >>> g++_iso -c cs.cpp
 

n°776378
ezeeckiel
Posté le 24-06-2004 à 16:58:49  profilanswer
 

ok j'ai résolu le rtuc, vous allez rire :
le hpp contenant le LocalFileFormatTarget n'était pas inclus (une erreur que je fais tellement souvent).
En tous cas j'ai appris qu'on pouvait mettre des new dans une instanciation.
 
Question : pourquoi est-ce mieux que dasn le constructeur ?

n°776383
Taz
bisounours-codeur
Posté le 24-06-2004 à 17:02:03  profilanswer
 

non ta stupidité ne me fait pas rire

n°776385
ezeeckiel
Posté le 24-06-2004 à 17:03:42  profilanswer
 

moi non plus vu le temps que je passe à la corriger, mais comme je ne suis pas programmeur je n'en ai pas les réflexes. Par contre j'aime bien comprendre. Et quand tu dis que c'est mieux ainsi j'aimerai savoir pourquoi ? C'est plus joli ? plus efficace?

n°776403
Taz
bisounours-codeur
Posté le 24-06-2004 à 17:10:04  profilanswer
 

plus sur au niveau des exceptions

n°776414
ezeeckiel
Posté le 24-06-2004 à 17:14:26  profilanswer
 

ok merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  new dans instantiation dans constructeur ???

 

Sujets relatifs
Besoin d'aide sur l'initialisation d'une variable dans un constructeur[C++] Paramètres à un constructeur de classe
[C++] Premier constructeur & dernier destructeur spécifiques....constructeur
Diff entre une définition dans la classe et dans le constructeur[C++] Appel d'un constructeur dans un constructeur via placement new
Assignation et constructeur de copie[python]classe + liste dans constructeur ??
[c++] syntax constructeurConstructeur de copie
Plus de sujets relatifs à : new dans instantiation dans constructeur ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR