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 :

Orienté object : dérivation ou pas ?


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut Orienté object : dérivation ou pas ?
    Bonjour,

    J'ai comme énoncé ceci :
    - Faites une classe EtatCivil qui possède une nationalité et une date de naissance
    - Faites une classe Personne qui possède un nom et un etat civil.

    Première sol :
    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
    25
    26
    27
    28
    29
    30
    31
    class EtatCivil
    {
    	public:
    		EtatCivil(string nationalite, string date_naissance)
    		{
    			this->nationalite = nationalite;
    			this->date_naissance = date_naissance;
    		}
     
    	private:
    		string nationalite, date_naissance;
    };
     
    class Personne
    {
    	public:
    		Personne(string name, string nationalite, string date_naissance)
    		{
    			this->name = name;
    			ec = new EtatCivil(nationalite, date_naissance);
    		}
     
    		~Personne()
    		{
    			delete ec;
    		}
     
    	private:
    		string name;
    		EtatCivil * ec;
    };
    Deuxième solution:
    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 EtatCivil
    {
    	public:
    		EtatCivil(string nationalite, string date_naissance)
    		{
    			this->nationalite = nationalite;
    			this->date_naissance = date_naissance;
    		}
     
    	private:
    		string nationalite, date_naissance;
    };
     
    class Personne : public EtatCivil
    {
    	public:
    		Personne(string name, string nationalite, string date_naissance) : EtatCivil(nationalite, date_naissance)
    		{
    			this->name = name;
    		}
     
    	private:
    		string name;
    };
    Ma prof me dit que que la deuxième solution n'est pas bonne parce que l'on ne peut pas dire "une personne est un etat civil".
    Et moi je trouve la deuxième solution plus belle et elle fonctionne aussi bien !

    Qui est raison et surtout pourquoi ? Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut
    Je partage l'opinion de ta prof :

    "une personne a un état civil"
    "une personne n'est pas un état civil"

    Question de vocabulaire peut être ?? Mais quelles décisions de modélisation ferais-tu si tu avais en plus un objet CompteBancaire, un objet Travail, un objet Homme, un objet Femme, etc (un petit exercice :-))

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Points : 74
    Points
    74
    Par défaut
    Oui c'est vrai que maintenant je voit les limites de la deuxième solution grâce à ton petit exercice Merci

Discussions similaires

  1. [ ALV orienté object ] click
    Par roxanne dans le forum SAP
    Réponses: 3
    Dernier message: 05/04/2012, 12h07
  2. question sur date sous oracle oriente object
    Par PHPkoala dans le forum SQL
    Réponses: 4
    Dernier message: 22/01/2008, 23h48
  3. debutant oriente object
    Par taurus-le-bien-aime dans le forum Général Python
    Réponses: 3
    Dernier message: 18/07/2007, 21h29
  4. Réponses: 2
    Dernier message: 25/02/2007, 23h56
  5. Réponses: 8
    Dernier message: 18/01/2007, 21h01

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