Formation ADA programmation par extension, tutoriel & guide de travaux pratiques en pdf.
PROGRAMMATION PAR EXTENSION
n Les types dérivés héritent des opérations du type parent –en Ada 95, on les appelle les opérations primitives
n Les sous-programmes d’usager sont classifiés parmi les opérations primitives s’ils sont déclarés dans le même paquetage que le type et qu’ils ont un paramètre ou le résultat de ce type.
n On pourrait avoir déclaré
function Size ( R: in Rectangle) return Float is begin return R.Length* R.Width; end Size;
n Le type CUBOID hérite de cette fonction, mais il serait préférable d’écrire une nouvelle fonction: function Size ( C: in Cuboid) return Float is begin return Size (Rectangle(C)) * C.Height; end Size;
OOP: Exemple
withAda.Calendar; packageAlert_Systemis type Priority is( Low, Medium , High);
type Device is( Teletype, Console, Big_Screen); type Alert ( P :Priority) is record Time_Of_Arrival : Ada.Calendar.Time; Messager : Text; case Pis when Low => null; when Medium| High => Action_Officer: Person; case Pis when Low | Medium=> null; when High=> Ring_Alarm_At: Ada.Calendar.Time; end case; end case;
end record
procedure Display ( A : inAlert; On : in Device);
procedure Handle ( A : in out Alert); procedure Log ( A :Alert); procedure Set_Alarm( A : inAlert); endAlert_System ;
procedure Handle( A : in out Alert)is begin A.Time_Of_Arrival := Calendar.Clock; Log (A);
Display ( A, Teletype); case A.Pis when Low => null; when Medium | High =>
A.Action_Oficer := Assign_Volunteer; Display ( A, Console);
case A.Pis when Low| Medium => null;
when High =>
Display ( A, Big_Screen); Set_Alarm( A);
end case; end case; end Handle;