Heritage de plusieurs classes

tonton_hassen Messages postés 7 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 5 avril 2006 - 23 févr. 2006 à 18:04
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 23 févr. 2006 à 22:41
Bonjour,

J'ai un probleme qui requiere une grande attention: je cherche a trouver un moyen de faire un heritage multiple. En effet, j'ai deux classes (ex: classe1 et classe2). Je souhaite pouvoir utiliser les deux dans une 3eme classe. Je sais que l'on ne peut resoudre ce probleme qu'en faisant appel à une interface. j'ai lu un post sur le forum ou des explications sont fournies mais je ne trouve pas la solution a mon probleme.
Si quelqu'un a une réponse, n'hesitez pas.
Merci

7 réponses

flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
23 févr. 2006 à 18:51
salut !



On requiert avec un t lol.

Bon est-ce que tu peux faire un :

Maclasse3=class(classe1,classe2);



a++
0
tonton_hassen Messages postés 7 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 5 avril 2006
23 févr. 2006 à 19:32
Salut,

J'avais deja essayer de faire ca mais le probleme est que classe2 est interprété en tant qu'interface et non en tant que classe.

Merci quand meme pour ta reponse
0
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
23 févr. 2006 à 19:43
ah je croyais que tu voulais un héritage de classe et d'interface proprement dit.

Sache pour ta gouverne que l'héritage multiple est non autorisé par le langage PASCAL.

T peux néanmoins utliser les interfaces.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 févr. 2006 à 19:44
Les classes TClass1 et Tclass2 ont elles un ancêtre commun ?
Implémentent-elles les mêmes interfaces ?


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0

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

Posez votre question
flor003 Messages postés 118 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 19 juin 2007
23 févr. 2006 à 19:53
moi je vois ca comme ca :

type

Tclass1=interface

procedure proc();safecall;

end;



Tclass2=interface

procedure cuneautreprocedure();safecall;

end;



Tclass3(Tclass1,Tclass2)

procedure proc();safecall;

procedure cuneautreprocedure();safecall;

end;
0
tonton_hassen Messages postés 7 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 5 avril 2006
23 févr. 2006 à 21:39
Les classes TClass1 et TClass2 ont un ancêtre commun en effet.
Pour etre plus précis, la classe Tclass1 est un ancêtre de TClass3. Je voulais ajouter du codage en y ajoutant des informations provenant de TClass2.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 févr. 2006 à 22:41
Plutôt que d'utiliser une relation d'héritage, tu peux utiliser une relation de composition.
Ainsi, TClass3 possède une membre de la classe TClass2 et tu accèdes alors aux membres de cette dernière en faisant appel aux méthodes de TClass3.
A dire vrai, cela dépend aussi du type de relation qui unissent TClass3 et TClass2 : TClass3 pourrait très bien décorer TClass2, par exemple.
Pourrais-tu donner plus de détails sur le rôle de chacune des classes ou alors on en reste là ?

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
Rejoignez-nous