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 :

c++ problème d'héritage


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 116
    Par défaut c++ problème d'héritage
    bonsoir tout le monde,

    je crois avoir mal compris l'héritage, j'ai une classe Conf qui contient une classe ioXML qui herite de Conf :

    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 Conf {
    public:
    	map<string,string>	       gConf;
    	ioXML		       *io;
    	void	init();
    	Conf();
    };
     
    class ioXML : public Conf
    {
    private:
    	TiXmlDocument	*doc;
    	TiXmlError		*err;
    	bool			to_leave;
    public:
    	ioXML();
    	void			load_and_init();
    	int				save_conf(TiXmlNode * pParent);
    	TiXmlDocument	*getDoc();
    	void			setDoc(TiXmlDocument *doc);
    	bool			getToLeave();
    	void			setToLeave(bool);
    	void			ioPort(TiXmlNode *);
    };
    que dois je mettre dans mes constructeurs, de quelle facon dois-je instancié ma classe conf ?

    merci de votre aide

  2. #2
    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
    que dois je mettre dans mes constructeurs, de quelle facon dois-je instancié ma classe conf ?
    Rien, les constructeurs de ioXML appeleront implicitement le constructeur par défaut de Conf.

    Par contre ici j'ai un doute quant à l'héritage publique. Je verrais plutôt un héritage privé ou une composition. En plus la classe de base possède un pointeur vers une instance de la classe dérivée, c'est un peu bizarre

  3. #3
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Pour savoir dans quel cas on doit faire un héritage ou dans quel cas on doit faire une aggrégation (attribut pointeur sur une instance), il suffit juste de ce poser ces 2 questions :

    - est-ce que B "est un" A : si oui B doit hériter de A
    - est-ce que A "est composé" de B : si oui A doit aggréger B

    Voilà qui devrait résoudre ton problème.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    J'ai un crédo beaucoup plus simple : si on se pose la question c'est vraisemblablement une composition/aggrégation
    Autrement dit : si ce n'est pas pour mettre en place des interfaces (tout virtuel pur) ou factoriser du code, une compostion/aggrégation est sans doute une meilleure idée !

    MAT.

Discussions similaires

  1. [C#] Problème d'héritage, aide svp :(
    Par choas dans le forum Windows Forms
    Réponses: 12
    Dernier message: 06/05/2006, 11h46
  2. problème constructeur + héritage
    Par BOLARD dans le forum C++
    Réponses: 10
    Dernier message: 13/04/2006, 08h11
  3. [AS2] Problème d'héritage
    Par wwave dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 27/01/2006, 09h26
  4. Problème d'héritage ?
    Par Romanops dans le forum WinDev
    Réponses: 2
    Dernier message: 16/11/2005, 17h18
  5. Problème d'héritage d'une méthode protégée
    Par shenron666 dans le forum C++
    Réponses: 9
    Dernier message: 28/04/2005, 23h17

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