Supposons que je les suivantes:Héritage Type Multiple Ada
type blah is abstract tagged
record
element1 : integer;
end record;
type blah2 is abstract tagged
record
element2 : integer;
end record;
J'espère qu'il est possible que je peux faire quelque chose comme ceci:
type blah3 is abstract new blah1 and blah 2 with null record;
Donc, en théorie je peux maintenant accès blah3.element1 et blah3.element2
Est-ce possible? et des conseils ou des astuces?
MISE À JOUR:
Serait-il possible de références les éléments de blah3 (contenant blah et blah2) à l'aide des pointeurs?
I.E. (Ce qui est juste un code vague idée est terrible ... LOL)
type blah3 is new type with
record
element1 : ptr to blah.element1;
element2 : ptr to blah2.element2;
end record
et sont alors en mesure d'être accessible via blah3.element1 par exemple?
En bref, non, l'héritage multiple n'est pas possible dans Ada de la manière que vous espérez. Des analogies proches sont possibles en utilisant "mixins" et l'héritage d'interface, mais je n'ai pas beaucoup fait dans ces domaines, donc je ne veux pas donner de conseils sans expérience pour le sauvegarder (pas que ça arrête la plupart des blogueurs :-). Quel est le problème que vous essayez de résoudre? Peut-être qu'il y a une bonne solution qui n'implique pas l'IM. –
Je vais essayer ... –
Le but est de garder un "paquet" particulier en boîte noire, I.E. l'enregistrement Blah 3 est l '"appel" typique à notre paquet, mais certains événements ont provoqué la mise en deux types de données, l'espoir étant de les unifier d'une manière ou d'une autre, afin que nous puissions laisser l'appel initial seul travaille toujours pour les gens de l'extérieur qui essaient d'appeler. J'espère que cela a du sens. – onaclov2000