probleme declaration operateur new

probleme declaration operateur new - C++ - Programmation

Marsh Posté le 26-04-2004 à 19:00:28    

Hello
 
voila je fait ca :


Histo<T> *tabhisto;      
tabhisto=new Histo<T>[reg_max+1](nbc,C1,C2,C3);


 
et visual me sort ca :  
 

error C2075 : 'Target of operator new()' : l'initialisation d'un tableau necessite des accolades ouvrantes.


 
 
Je ne comprend cette erreur . quelqu'un peut me dire ?


Message édité par vince_223 le 26-04-2004 à 19:01:39
Reply

Marsh Posté le 26-04-2004 à 19:00:28   

Reply

Marsh Posté le 26-04-2004 à 19:03:25    

ben ouais, avec un new[], tu peux pas initialiser les éléments. le constructeur par défaut est utilisé.
 
déjà, utilise un std::vector< Histo<T> >

Reply

Marsh Posté le 26-04-2004 à 19:06:55    

Je doit etre fatigué,
 
comment utilise tu ton vector<histo<T>> ?

Reply

Marsh Posté le 26-04-2004 à 19:12:45    

avec les espaces déjà  :o
comment ? http://www.sgi.com/tech/stl/Vector.html

Reply

Marsh Posté le 27-04-2004 à 10:51:27    

Le probleme c'est que je peux pas modifier le type par un vector. Ca me ferait reecrire toute la classe.
 
je dois adapter un projet linux sous windows, et j'ai pas envie de me retaper toutes les classes (environ 25 classes relativement consequente)
 
si je fait un truc dans le genre
 

Code :
  1. Histo<T> *tabhisto;
  2. for(int i=0;i<reg_max+1;i++)
  3.   tabhisto[i]=new Histo<T>(nbc,C1,C2,C3);

 
 
a la place de  
 

Code :
  1. Histo<T> *tabhisto;
  2. tabhisto=new Histo<T>[reg_max+1](nbc,C1,C2,C3);


 
 
c correct ou pas (je peux pas tester pour l'instant.

Reply

Marsh Posté le 27-04-2004 à 11:52:28    

non plus

Reply

Marsh Posté le 27-04-2004 à 12:00:13    

pkoi ? c le meme probleme ? ( g pa tout compris alors )

Reply

Marsh Posté le 27-04-2004 à 12:04:46    

que si tu utilisais std::vector il existerait pas

Reply

Marsh Posté le 27-04-2004 à 12:06:05    

bon et si je fait un constructeur par defaut et je fait un
 
Histo<T> *tabhisto;
tabhisto=new Histo<T>[reg_max+1]();
for(int i=0 ; i< reg_max+1 ; i++)
 tabhisto[i].set_values(nbc,C1,C2,C3);
 
et creant une methode set_values.
c'est nettement moins rapide mais ca fonctionnne


Message édité par vince_223 le 27-04-2004 à 12:06:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed