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 :

Constructeur d'un fils


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut Constructeur d'un fils
    Salut,
    j'ai pti probleme tout simple :
    -j'ai une classe pere qui a besoin d'une adresse pour mon port serie
    -j'ai une classe fils que j'appelle avec le constructeur et dedans le constructeur fils je lui donne l'adresse.

    J'aimerai savoir si il est possible de donner l'adresse au pere avant que le pere lance les fonction de son constructeur.
    voila mon appel:
    et dans mon code de constructeur voila mes 2 constructeur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Fils::Fils(int add)
    {
        adresse=add; //ici l'adresse est une donne protected de la classe pere
    }
     
    ...
     
    Pere::Pere()
    {
        InitCom();
    }
    Le Probleme est le suivant : ben la fonction InitCom() est lancer avant que j'initialise la variable addresse, du coup j'aimerai que addresse soit initialiser avant d'appeler ma fonction
    Merci

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Par d�faut
    Si la classe de base a besoin de donn�es pour pouvoir �tre instanci�e correctement, elle doit disposer d'un constructeur permettant de lui fournir.
    Ensuite, par cha�nage de constructeur, les donn�es fournies au constructeur de la classe d�riv�e peuvent �tre transmise au constructeur de la classe de base.
    En r�gle g�n�rale, chaque classe est r�sponsable d'initialiser ses variables membres, si ce n'est pas le cas c'est souvent que la conception est mauvaise.

    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
    23
    24
    class Base
    {
    public: /* protected marche aussi dans ce cas */
      Base(int add);
     
    protected:
      int addresse_;
    };
     
    class Derived : public Base
    {
      Derived(int add);
    };
     
    Base::Base(int add)
    {
      adresse_ = add;
    }
     
    Derived::Derived(int add)
     : Base(add)  // Appel du constructeur de la classe de base
    {
      ...
    }

  3. #3
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    je m'auto repond et je resolu mon probleme mais j'aimerai une confirmation pour savoir si c'est une bonne solution ?
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    fils::fils(int add)
    :Pere(add)
    {}
    et j'ai fait un constructeur pere qui initialise son atribut protected address a la valeur de add.
    Mais je pensai que lorsque l'on appeler un objet deriver comme fils alors le sontructeur par defaut de Pere sera lancer ... cela ne risque pas de lancer 2 fois le contructeur de pere ? (1 sans parametre "Pere()" et un autre que j'apelle dans mon initialisation ? "Pere(add)")
    Merci[/code]

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    oki merci VoidSeer
    �a confirma ce que j'ai trouver
    Probl�me resolu

  5. #5
    Membre �prouv� Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    951
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Artisant logiciel
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 951
    Par d�faut
    non, d'apres mes maigres conniassance, c'est ainsi qu'il faut faire, en effet, il n'est pas appel� nativement...

  6. #6
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    euh je reouvre mon sujet car j'ai un pti truc qui me chagrinne ...
    en fait il veut absolument que mon constructeur Pere() sans param existe alors que je ne l'utilise pas ...
    C'est normal ?

  7. #7
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Les constructeurs par d�faut sont souvent appel�s sans qu'on le voit. Est-ce que par exemple ta classe d�riv�e aurait d'autres constructeurs ? Sur quelle ligne de code se trouve l'erreur ?

  8. #8
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    L'erreur est en fait une erreur de link comme quoi il ne trouve pas le constructeur de mon pere.... et quand je rajoute le constructeur par defaut : alors miracle pus de ereur de link :-/
    �a m'embete un peu de mettre un constructeur qui sert a rien et que personne n'apelle ...

    EDIT : oups c'est la honte je l'avai d�clarer mais pas definit ...
    c'est pour �a c'est que j'ai aps l'habitude de mettre des constructeur en protected du coup je l'avai planquer et il etait declarer alors que y'en a pas besoin.
    D�sol� pour le d�rangement.
    Probl�me r�solu

  9. #9
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    IL est fort possible qu'il soit utilis� sans que tu en soit conscient
    declare le private ou explicit, et cela te permettra sans doute de savoir o� il est utilis�.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Cr�ation du constructeur fils
    Par johnkro dans le forum Langage
    R�ponses: 11
    Dernier message: 13/03/2008, 09h06
  2. [VB6]Déclaration d'un Constructeur Spécialisé
    Par TagadaTsoin dans le forum VB 6 et ant�rieur
    R�ponses: 21
    Dernier message: 26/05/2004, 14h09
  3. Capture d'exception dans un constructeur
    Par declencher dans le forum Composants VCL
    R�ponses: 8
    Dernier message: 03/02/2004, 12h52
  4. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'�change (XML, JSON...)
    R�ponses: 5
    Dernier message: 20/03/2003, 09h44
  5. pb constructeurs classes d�rivant classe abstraite
    Par Cornell dans le forum Langage
    R�ponses: 2
    Dernier message: 10/02/2003, 19h02

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