[C++] Erreur déclaration tableau dans classe

Erreur déclaration tableau dans classe [C++] - C++ - Programmation

Marsh Posté le 25-12-2007 à 22:29:13    

Salut tout le monde!
Je ne comprend pas j'ai une erreur en declarant un tableau dans une class.
Je cherche depuis une heure et je sens que je vais devenir fou!
 
Voici le code

Code :
  1. class Ctruc
  2. {
  3. private:
  4.      int const Tab[2] = {1,2}
  5. };


il m'affiche cette erreur:
 
error C2059: syntax error : '{'
error C2334: unexpected token(s) preceding '{'; skipping apparent function body
 
Merci d'avance pour l'aide!

Reply

Marsh Posté le 25-12-2007 à 22:29:13   

Reply

Marsh Posté le 26-12-2007 à 00:58:01    

Salut,

 

Tu ne peux pas initialiser un tableau dans une déclaration d'attribut de classe.


Message édité par IrmatDen le 26-12-2007 à 00:58:16
Reply

Marsh Posté le 26-12-2007 à 01:10:35    

Oki!
Mais comment l'initialiser alors tout en le gardant "const"?

Reply

Marsh Posté le 26-12-2007 à 01:27:34    

Pas possible, sauf à en faire un membre static, à ma connaissance.


Message édité par IrmatDen le 26-12-2007 à 01:27:47
Reply

Marsh Posté le 26-12-2007 à 01:35:56    

Oki! je te remercie!
Tu pourrais me montrer la syntaxe pour l'initialiser stp?


Message édité par 1rageux le 26-12-2007 à 01:38:39
Reply

Marsh Posté le 26-12-2007 à 01:45:38    

Code :
  1. class Foo
  2. {
  3. private:
  4.     static const int n[2];
  5. };
  6. /* Tu met au début (de préférence pour la relecture)
  7.    dans le .cpp où tu définis les méthodes de cette classe */
  8. const int Foo::n[2] = {1,2};

Reply

Marsh Posté le 26-12-2007 à 02:03:41    

Oki merci ça marche nikel!
Allez bonne soirée!

Reply

Marsh Posté le 26-12-2007 à 21:01:35    

punaise et std::vector :o

Reply

Marsh Posté le 04-01-2008 à 13:34:38    

deja: non ce n'est pas pareil. Le fait de mettre en static ton tableau a bcp de conséquence.
 
Ensuite: tu peux mettre les const au niveau des accesseurs sur ton tableau

Reply

Sujets relatifs:

Leave a Replay

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