Classe heritage

[Résolu]
Signaler
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012
-
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
-
Bonjours,



Je suis bloqué surun probleme d'heritage, voici la problématique :

Nous avons un objet soit carré, triangulaire ou rond.

Mais cette objet est aussi soit rouge, bleu ou jaune.



On suppose que chacune de ces caractéristiques sont des classes (en fait je shématise un probleme plus complexe).



Comment faire pour pouvoir choisir l'héritage de la classe sans à avoir à écrire les 9 possibilité.



class objet : public (carré ou triangle ou rond) , public (rouge ou bleu ou jaune)

{

};



J'espere que c'est assez claire. Si vous avez des axes de recherche à me fournir ou un exemple??? mci

Have Fun ...

8 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
Avec un mix :
class Couleur
{
};

class Forme
{
};

class rouge : public class Couleur
{
};

class bleu : public class Couleur
{
};

class jaune : public class Couleur
{
};

class carré : public class Forme
{
};

class triangulaire : public class Forme
{
};

class rond : public class Forme
{
};

puis

// heritage multiple
class Objet: public Couleur, public Forme
{
};

ou

// agrégation
class Objet:
{
Couleur c;
Forme f;
};
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Tu peux pas hériter seulement des classes utiles, puisque tu ne les connait pas encore. Tu peux comme tu l'a dit créer 9 classe, comme ObjetRougeCarré, ObjetBleuCarré... mais c'est complètement idiot. Ca semble évident d'utilier une classe Couleur dont héritent toutes les couleurs, comme le di ymca2003
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

J'ai pensé au template mais je ne vois pas comment l'intégrer au code...

Have Fun ...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
L'héritage multiple, tout simpement.
class Couleur
{
//...
};

class Forme
{
//...
}

class Objet: public Couleur, public Forme
{
//...
}
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

nah en fait tu ma mal compris. Chaque couleur est une classe et chaque forme est une classe :

class rouge
{
};
class bleu
{
};
class jaune
{
};
class carré
{
};
class triangulaire
{
};
class rond
{
};

class objet
{
};
Donc voila mes classes...

Comment résoudre mon probleme ???

Have Fun ...
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

Ouai ms je voulais savoir si c'était pas possible d'hériter sulement les classes utiles, sans utiliser l'agrégation... LOL je suis exigeant ms c'est pour connaître jusqu'ou on peut pousser les cpp.

Have Fun ...
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

Bèh ça dépand ça peut être utilie, lorsque chaque classe contient boucoup d'information. Mais tu répond à ma question...Donc finalement le must c d'utiliser l'agrégation ^^

Merci

Have Fun ...
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
class Objet: public Couleur, public Forme
{
};

=> si dans la classe Couleur tu as une méthode virtuelle du genre GetColor(), l'appeler avec un object Objet va appeler la méthode de la classe dérivée.
Idem pour la forme.