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 :

Pas de compilation sans constructeur sans argument!


Sujet :

C++

  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut Pas de compilation sans constructeur sans argument!
    Salut à tous,

    Je ne comprends pas pourquoi ce code ne compile que si je déclare un constructeur sans argument dans MaClass!!

    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
    19
    20
    21
    22
    class MaClass {
    public:
    	MaClass ( int a ) {
    	};
    	/*MaClass() {	//Refus de compiler si ce constructeur sans arguments est absent!!
    	};*/
    };
     
    struct noeud {
    	MaClass n;
    	noeud ( MaClass mc ) {
    		n = mc;
    	}
    	noeud () {     //Même problème sans le constructeur noeud () {}
    	};
    };
     
    void main () {
    	MaClass b ( 3 );
    	noeud n1 ( b ) ;
    	noeud n2;     //Même problème sans cette ligne et sans  noeud () {} dans struct noeud
    }
    Message d'erreur :
    ligne 11 : error C2512: 'MaClass' : no appropriate default constructor available
    ligne 14 : error C2512: 'MaClass' : no appropriate default constructor available
    Merci

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Parce qu'un constructeur par défaut n'est pas généré s'il existe au moins un autre constructeur (fut-il avec un ou des arguments).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct noeud {
    	MaClass n;
    	noeud ( MaClass mc ):n(mc) {
    	}
    	noeud ():n(1) {     //Même problème sans le constructeur noeud () {}
    	};
    };

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    Parce qu'un constructeur par défaut n'est pas généré s'il existe au moins un autre constructeur (fut-il avec un ou des arguments).
    J'avais oublié! Merci pour la piqure de rappel .

    PS : Pour le void main () je sais mais c'était juste pour un tout petit bout de code, j'essaye d'y penser la prochaine fois Pardon, la est méritée...

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

Discussions similaires

  1. [Débutant] Impossible de sérialiser => Pas de constructeur sans paramètres
    Par Granopla dans le forum VB.NET
    Réponses: 4
    Dernier message: 26/01/2014, 16h19
  2. applet et constructeur sans argument
    Par new_wave dans le forum Applets
    Réponses: 2
    Dernier message: 09/05/2012, 09h58
  3. Formatage sans CD, sans disquette, sans rien
    Par viveslesaltosrouges dans le forum Windows
    Réponses: 6
    Dernier message: 13/07/2010, 09h52
  4. Tableau et constructeurs sans arguments
    Par wafiwafi dans le forum Langage
    Réponses: 41
    Dernier message: 03/01/2010, 19h40
  5. [TP]Compiler un prog sans entrer dans TP7
    Par poppels dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 23/10/2002, 19h46

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