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 :

Liste d'initialisation constructeur


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut Liste d'initialisation constructeur
    Bonjour ,
    J'ai crée une class " compte " avec 2 instances ccp et livretA . J'ai 2 attributs solde et rib , et quelques méthodes .
    Je voudrai créer un constructeur avec une liste d'initialisation .
    J'ai pensé a le faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Compte::Compte() : ccp.rib(12345...) , livretA.rib(87654...) , solde(0) 
                 {
     
                 }
    Est ce correcte ?
    Je ne peux rien tester puisque j 'en suis encore a la phase feuille de papier .

    Merci de votre aide .

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Sans le header on peut pas trop savoir.
    Vue la syntaxe utilisée, c'est probablement faux.
    Une classe avec 2 instances, ça veut rien dire.
    Tu devrais laisser tomber le papier et utiliser un compilateur.. tu perdras moins de temps sur des questions aussi triviales.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Non cela semble faux : dans une liste d'initialisation tu ne peux
    1. appeler 1 constructeur de la classe mère - évidemment c'est pour appeler un constructeur avec des paramètres
    2. pour un membre POD ("Plain Old Data"), l'initialiser avec une valeur - avec la syntaxe parenthèse
    3. pour un membre objet, l'initialiser avec l'appel d'un constructeur - évidemment c'est pour appeler un constructeur avec des paramètres


    Donc plus Compte::Compte() : ccp(12345, ...), livretA(87654, ...), solde(0) {} si solde est un entier, et ccp et livretA sont des objets

  4. #4
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Pour le header pour le moment c'est comme ca :

    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
    #ifndef COMPTE_H_
    #define COMPTE_H_
    #include <string>
     
    class Compte
      {
         private :
         int solde, rib ;
     
         public :
         Compte();
         void saisir(int solde);
         void deposer(int);
         void retirer(int);
         void afficher();
         bool virement(int montant,Compte &C);
       };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main()
    {
      Compte ccp,livretA;

  5. #5
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Ou peut etre l'implémentation du constructeur comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Compte :: Compte(int a ) : solde(0) , rib (a) 
    {
     
    }
    Et dans le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Compte ccp (12348....), livretA(987654 ....);

  6. #6
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Merci a tous les deux pour votre aide . Bonne journée

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/03/2011, 12h56
  2. Liste d'initialisation dans les constructeurs
    Par Dani3L dans le forum C++
    Réponses: 4
    Dernier message: 25/12/2008, 18h36
  3. Réponses: 24
    Dernier message: 08/05/2008, 17h30
  4. 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