pb de typedef et struc/vector (rézolu) [C++] - C++ - Programmation
Marsh Posté le 14-06-2003 à 13:49:43
http://www.chezmoicamarche.com
Marsh Posté le 14-06-2003 à 13:50:39
c clair....
comprend pas
Marsh Posté le 14-06-2003 à 13:52:08
Montre un peu plus de code
Marsh Posté le 14-06-2003 à 13:53:41
Code :
|
Marsh Posté le 14-06-2003 à 13:56:04
farib a écrit :
|
Peut-etre
Code :
|
non?
Marsh Posté le 14-06-2003 à 13:59:13
Evite de définir des type locaux à une fonction, ils ne sont pas visible dans les fonctions appelées. Ici, MyStruct n'est connu que dans main, donc les fonctions de la classe vector ne le connaissent pas et sont donc incapables de les utiliser.
Met tes déclarations de type en dehors de toutes fonctions.
Marsh Posté le 14-06-2003 à 14:00:21
farib a écrit : bah c un typedef mystruct |
bah si mes souvenirs sont bons en faisant
Code :
|
Tu dis que
"struct MyStruct" contient "int valeur ; int indice ;"
Sinon tu fais un
Code :
|
[edit]
Ou alors je raconte n'importe kwa, c'est possible aussi...
Marsh Posté le 14-06-2003 à 14:00:57
euh on fait du C++ mec,
le typedef ne sert à rien
tu peux directement ecrire
Mastruct u;
tout ceux chez qui ça marche, je sens du VC
si tu veux quand meme renommer ton type
struct MyStruct;
typedef MyStruct MaStructure;
Marsh Posté le 14-06-2003 à 14:05:22
++Taz a écrit : |
gcc 2.95.4
Je suis surpris que ça compile aussi :
Code :
|
Marsh Posté le 14-06-2003 à 14:09:01
car ça ne doit pas
c'est tout à fait légal ISO C++ forbids declaration of `type name' with no type, j'aurais répondu la même chose
Marsh Posté le 14-06-2003 à 14:14:10
Pour ma culture, c'est des conneries ce que j'ai raconté? Des souvenirs de C?
Marsh Posté le 14-06-2003 à 16:03:30
++Taz a écrit : car ça ne doit pas |
c'est normal que ca compile.
j'avais pas fé gaffe, le typedef était dans le main avec le S, il fallait que le typedef soit en dehors ( ca pourrait marcher pourtant, le typedef avait portée jusqu'a la fin du main ???)
la ca marche pour kadreg c juste que S est déclaré en global aussi.
Marsh Posté le 14-06-2003 à 13:44:49
somme.cpp:25: template-argument `main()::MyStruct' uses local type `
main()::MyStruct'
somme.cpp:25: template argument 2 is invalid
somme.cpp:25: ISO C++ forbids declaration of `type name' with no type
typedef struct MyStruct { int valeur ; int indice ;} ;
vector < vector < MyStruct > > S ;
Message édité par farib le 14-06-2003 à 14:01:04