Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Ada
Ada Forum d'entraide sur la programmation en langage Ada
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/05/2011, 10h28   #1
Futur Membre du Club
 
Homme
Inscription : avril 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 9
Points : 15
Points : 15
Par défaut Utilisation de la programmation orientée objet en Ada 2005

J'ai défini en Ada 2005 une hiérarchie d'héritage entre des classes d'objets de type controlled. Je veux appeler sur une instance Vfils de la classe objet fils une méthode définie chez la classe objet père ou grand-père etc... Lorsque cette méthode n'a pas été surchargée, elle est directement héritée et je comprend que l'appel methode(Vfils) répond bien au besoin . Mais comment faire lorsque cette méthode a été redéfinie par le fils (ou chez le père si je veux utiliser la version grand-père de la méthode...). Existe-t'il un mot clé comme "inherited" pour qualifier la méthode du père ou faut-il systématiquement passer par un cast explicite de Vfils comme dans methode(pere(Vfils)) ou methode(grand_pere(Vfils)) ?
RedBlackTree est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 21h03   #2
Futur Membre du Club
 
Inscription : mars 2011
Messages : 22
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 22
Points : 17
Points : 17
La bonne et seule façon de faire en Ada pour invoquer une version ancestrale d'une méthode surchargée est effectivement de changer le type apparent de l'objet (vers la racine de sa hiérarchie) en le "castant". Il n'y a pas de mot réservé du type "parent" ou "inherited" comme dans d'autres langages orientés objet. C'est sans doute moins souple, mais au moins les choses sont dites explicitement.
Emile8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h15.


 
 
 
 
Partenaires

Hébergement Web