IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Pb d'initialisation d'un tableau


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut Pb d'initialisation d'un tableau
    Bonjour à tous,

    Voila je souhaiterai initialiser un tableau qui est en attribut privé d'une classe. J'ai voulu l'initialiser directement dans la classe comme ceci mais cel ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Maclasse
    {
    public:
    ......
    private:
     
    int g_vie;
    int g_combo;
    std::string g_nomguerrier;
    int montableau[3]={1, 3, 4};
    }
    Mais cela ne marche pas!
    J'ai donc fais ma classe comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Maclasse
    {
    public:
    ......
    private:
     
    int g_vie;
    int g_combo;
    std::string g_nomguerrier;
    int montableau[3];
    }
    Je me suis donc dit qu'il fallait surement l'initialiser dans le constructeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Maclasse::Maclasse(string nomguerrier) : g_vie(100), g_combo(100), g_nomguerrier(nomguerrier), montableau[3]={1, 3, 4}
    {
     
    };
    Cela ne marche pas non plus! Erreur de syntaxe? faut-il faire autrement?
    Si quelqu'un sait comment initialiser un tableau qui est en membre privé d'un classe, cela serait le bienvenue!!
    Merci beaucou^!

  2. #2
    Membre éclairé Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Par défaut
    En fait, il me semble que le constructeur par defaut d'un tableau n'existe pas en C++.

    Il te faut innitialiser ton tableaux dans le corp du constructeur.

  3. #3
    Membre éclairé Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Par défaut
    Par contre si ton tableau est une constante, il serait peut être possible de voir à la declarer comme membre static const de ta classe et dans ce cas pas de problème.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    Merci de ta réponse!

    Déja pour que l'on soit d'accord.

    Les deux constructeur suivant sont pareils, seul la facon de les faire change:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Guerrier::Guerrier(string nomguerrier) 
    {
    g_vie=100;
    g_combo=100; 
    g_nomguerrier=nomguerrier;                         
    g_tabuservie[3]={1, 3, 4};
     
    };
    [CODE]
    Connecté en tant que grg->51 Intitulé:

    Message:
    Tailles1234567








    Merci de ta réponse!

    Déja pour que l'on soit d'accord.

    Les deux constructeur suivant sont pareils, seul la facon de les faire change:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Guerrier::Guerrier(string nomguerrier) 
    {
    g_vie=100;
    g_combo=100; 
    g_nomguerrier=nomguerrier;                         
    g_tabuservie[3]={1, 3, 4};
     
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     Guerrier::Guerrier(string nomguerrier) :g_vie(100), g_combo(100), g_nomguerrier(nomguerrier), g_tabuservie[3]={1, 3, 4}
    {
     
    };
    Ces deux syntaxes sont les memes, elles ne marchent pas les deux!
    Il y a une erreur pour le tableau!!!
    Je ne sais vraiment pas!

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    Ben les valeur k je met dan mon tableau j les change, elle reste pas les meme donc je ne pense pas que c'est une constante dans ce cas

  6. #6
    Membre éclairé Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Par défaut
    Les deux constructeur suivant sont pareils, seul la facon de les faire change:
    Pour etre tout a fait puriste, les deux constructeurs sont differents, en terme d'optimisation notament. Mais ce n'est pas ton problème visiblement.

    Maintenant revenons à ton problème, un identificateur ayant le type tableau est converti en une valeur constante, on ne peut donc rien lui affecter.
    Il est donc necessaire de faire l'innitialisation element par element.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Par défaut
    Oui élément par élement sa marche!!
    Jpensais que je pouvais faire d'un seul coup come je l'avais déja vu!

    Ben merci beaucoup!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Initialisation d'un tableau à plusieurs dimensions
    Par kinouseb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/02/2007, 13h16
  2. Initialisation d'un tableau de pointeurs
    Par tintin72 dans le forum C++
    Réponses: 19
    Dernier message: 19/11/2006, 10h22
  3. Problème d'initialisation d'un tableau
    Par Premium dans le forum C
    Réponses: 13
    Dernier message: 31/05/2006, 14h48
  4. Débutant : initialisation d'un tableau
    Par lebokto dans le forum C++
    Réponses: 7
    Dernier message: 02/11/2005, 15h50
  5. Initialisation d'un tableau de type STRUCT
    Par Axiome dans le forum MFC
    Réponses: 4
    Dernier message: 06/09/2005, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo