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

Langage C++ Discussion :

Instanciation d'un objet avec un constructeur par défaut


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Instanciation d'un objet avec un constructeur par défaut
    Bonjour, et désolé à l'avance si la réponse se trouve dans la FAQ mais je n'ai pas trouvé de réponse satisfaisante à ma question en parcourant celle-ci.

    Voici le problème, soit une classe A possédant un constructeur par défaut (sans argument) public, quelle est la différence entre les deux lignes de codes du main ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A { 
    public : 
        A(){...} 
    };
     
    int main(){
    A a;
    A b();
     
    return 0;
    }
    Après quelques tests, il semble que la seconde ligne (b) ne crée par vraiment d'objet de type A (le constructeur n'est pas invoqué) et b ne peux pas utiliser les méthodes de la classe A contrairement à l'objet a (GCC se plaint quand on essaie d'appeler une méthode à partir de b mais je ne comprend pas exactement ce qu'il dit : "erreur: request for member ‘func’ in ‘b’, which is of non-class type ‘A()’ ").

    Ce qui me trouble particulièrement c'est que dans le cas d'une classe dont le constructeur requière des paramètres, le passage d'arguments est obligatoire et les parenthèses sont donc nécessaire...

    S'il me semble claire que le premier objet (a) est bien un objet de type A, qu'est exactement b et que fait cette ligne de code ?

    D'avance, merci

  2. #2
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Bonjour,
    Dans la première ligne tu instancies un objet a de type A. Le constructeur par défaut est appelé.
    Dans la deuxième ligne tu déclares une fonction b() ne prenant aucun argument et renvoyant un objet de type A.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Merci
    Arrrgg ! Quelle bêtises ! On peut déclarer des fonctions dans des fonctions ! j'avais oublié !

    Merci !

    Citation Envoyé par Arzar Voir le message
    Bonjour,
    Dans la première ligne tu instancies un objet a de type A. Le constructeur par défaut est appelé.
    Dans la deuxième ligne tu déclares une fonction b() ne prenant aucun argument et renvoyant un objet de type A.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 118
    Points : 158
    Points
    158
    Par défaut
    le lien vers l'entrée de la FAQ : http://cpp.developpez.com/faq/cpp/?p..._list_list_fct

Discussions similaires

  1. Constructeur avec un string par défaut.
    Par deubelte dans le forum Débuter
    Réponses: 7
    Dernier message: 10/03/2012, 15h56
  2. Créer un objet avec une valeur par défaut
    Par Jihane75 dans le forum Designer
    Réponses: 4
    Dernier message: 06/02/2011, 20h59
  3. [XStream] Désérialiser un objet avec une valeur par défaut
    Par djodjo dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/04/2009, 13h47
  4. Petit problème avec le constructeur par copie
    Par beegees dans le forum C++
    Réponses: 16
    Dernier message: 01/04/2008, 16h34
  5. [Debutant] Problème avec un constructeur par copie
    Par Drannor dans le forum Débuter
    Réponses: 5
    Dernier message: 12/03/2007, 09h15

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