Classe heritage

Résolu
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 7 déc. 2005 à 23:53
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 - 8 déc. 2005 à 12:21
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
8 déc. 2005 à 10:14
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;
};
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 déc. 2005 à 12:18
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
3
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
7 déc. 2005 à 23:55
J'ai pensé au template mais je ne vois pas comment l'intégrer au code...

Have Fun ...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 déc. 2005 à 01:18
L'héritage multiple, tout simpement.
class Couleur
{
//...
};

class Forme
{
//...
}

class Objet: public Couleur, public Forme
{
//...
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
8 déc. 2005 à 08:44
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 ...
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
8 déc. 2005 à 10:20
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 ...
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
8 déc. 2005 à 12:21
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 ...
0
ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
8 déc. 2005 à 12:21
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.
0
Rejoignez-nous