Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/03/2007, à 19:01

Rodriguez

[C++]Héritage multiple

Bonjour,

j'ai une classe PointCoul qui hérite d'une classe Point et d'une classe Coul.
Les classes Coul et Point ont toutes les 2 une méthode affiche.
Je voudrais savoir comment doit s'écrire la méthode affiche de la classe PointCoul ?

Merci

Hors ligne

#2 Le 23/03/2007, à 02:26

Moka_one

Re : [C++]Héritage multiple

Bonjour,

Ici vu que tu as deux classes meres et que tu as dans chacune d'elle une methode affiche cela depend de ce que tu veux faire.
Si tes deux methodes affiche de chaque classe mere sont identique alors fais un affiche(); simple dans ta classe fille.
Mais si tes deux affiche sont differents ou si tu veux lancer seulement l'un ou l'autre alors fait comme ceci :
Nom_de_la_classe_mere_a_utiliser::affiche();
Note que cela marche aussi comme cela si tu veux appeller n'importe qu'elle methode s'une classe supérieure. D'ailleur meme si le fait de faire simplement le nom de ta methode marche (en cas d'unicité de la méthode dans les classes supérieures) il est quand meme plus propre de spécifier de quelle classe tu "sort" cette methode
Voila j'éspère t'avoir été utile sans trop t'avoir perdu.
Sinon retient juste Nom_de_la_classe_mere_a_utiliser::affiche(); dès que tu veux appéllé une methode d'une classe supérieure
bon courage

Dernière modification par Moka_one (Le 23/03/2007, à 02:27)


La défaite est éphémère
Seule la victoire est éternelle

Hors ligne

#3 Le 23/03/2007, à 02:53

Rodriguez

Re : [C++]Héritage multiple

Moka_one a écrit :

Bonjour,

Ici vu que tu as deux classes meres et que tu as dans chacune d'elle une methode affiche cela depend de ce que tu veux faire.
Si tes deux methodes affiche de chaque classe mere sont identique alors fais un affiche(); simple dans ta classe fille.
Mais si tes deux affiche sont differents ou si tu veux lancer seulement l'un ou l'autre alors fait comme ceci :
Nom_de_la_classe_mere_a_utiliser::affiche();
Note que cela marche aussi comme cela si tu veux appeller n'importe qu'elle methode s'une classe supérieure. D'ailleur meme si le fait de faire simplement le nom de ta methode marche (en cas d'unicité de la méthode dans les classes supérieures) il est quand meme plus propre de spécifier de quelle classe tu "sort" cette methode
Voila j'éspère t'avoir été utile sans trop t'avoir perdu.
Sinon retient juste Nom_de_la_classe_mere_a_utiliser::affiche(); dès que tu veux appéllé une methode d'une classe supérieure
bon courage

Salut,

comment il faut que je m'y prenne si je veux avoir l'affichage des méthodes de ces 2 classes.
La méthode affiche de la classe Point, affiche les coordonnées x, y
La méthode affiche de la Coul, affiche la couleur du point.
Je souhaite que la méthode affiche de la classe PointCoul affiche les coordonnées x, y et la couleur du point.
Comment m'y prendre ?

Merci

Hors ligne

#4 Le 23/03/2007, à 03:01

Luc Hermitte

Re : [C++]Héritage multiple

Utilise l'opérateur de résolution de portée.

Mais bon, le design est mauvais.

Autant je peux concevoir qu'un Point Coloré soit un point, ce qui est sûr, c'est que Point Coloré n'est pas une couleur. En revanche, il disposera d'une couleur.
L'héritage multiple ici ne tient pas, au mieux il sera mi-public (point), mi-privé (Couleur).
La composition est généralement préférée ici.

#5 Le 23/03/2007, à 14:13

Moka_one

Re : [C++]Héritage multiple

Si tu y tiens toujours
fais ceci dans pointcool

pointcool::affiche(){
      point::affiche();
      cool::affiche();
}

ca devrais marcher


La défaite est éphémère
Seule la victoire est éternelle

Hors ligne