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 :

Warning dans la liste d'initialisation d'un constructeur


Sujet :

C++

  1. #1
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut Warning dans la liste d'initialisation d'un constructeur
    Bonjour à tous

    Parlons peu, parlons bien, voici le code posant soucis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class Morpion {
    private:
    	int slots[9];
    	int current;
    	int turn;
    public:
    	Morpion() :
    		slots({0,0,0, 0,0,0, 0,0,0}),
    		current(0),
    		turn(0) {
    	}
     
    	int currentPlayer() const;
    };
     
    int main() {
    	return 0;
    }
    La classe est toute simple, c'est une prémisse pour un jeu de morpion. J'y mets la grille, le joueur actuel, et le nombre de tour déjà joué.
    Sauf qu'en compilant j'obtiens ceci:
    $ g++ -std=c++11 -Wall -Wextra -c morpion.cpp
    morpion.cpp: In constructor ‘Morpion::Morpion()’:
    morpion.cpp:12:9: warning: list-initializer for non-class type must not be parenthesized
       turn(0) {
             ^
    Je veux bien être conciliant avec gcc, mais pour le coup je ne comprends pas ce qui le dérange.

    Quelqu'un pourrait-il me dire ce qui se passe?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    gcc est quand même magique pour afficher les erreurs dans les listes d'initialisations (et dans les paramètres d'appel de fonction...).

    L'erreur vient de slots, un tableau ne peut pas être initialisé avec des parenthèses, il faut toujours utiliser les accolades: , slots{/*0,0,0 0,0,0 0,0,0*/}.

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Ok, merci bien.
    J'aurai appris quelque chose aujourd'hui.

    Bonne journée!

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

Discussions similaires

  1. probleme warnings dans liste chainees
    Par l'unique dans le forum Débuter
    Réponses: 2
    Dernier message: 02/11/2011, 20h49
  2. Réponses: 3
    Dernier message: 22/03/2011, 12h56
  3. typedef struct dans une liste d'initialisations
    Par titibete dans le forum C++
    Réponses: 3
    Dernier message: 17/11/2010, 20h39
  4. Liste d'initialisation dans les constructeurs
    Par Dani3L dans le forum C++
    Réponses: 4
    Dernier message: 25/12/2008, 18h36
  5. Réponses: 4
    Dernier message: 20/04/2008, 20h12

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