Bonjour,
Je tatone un peu avec la programmation orientée objet.
Je souhaiterez à la déclaration d'un type abstrait avec les méthodes abstraite contraindre le développeur à écrire les méthode correspondante pour un type concret.
Voilà ce que j'ai fait.
Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package Adaline is pragma Pure (Adaline); end Adaline;
Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package Adaline.Abstracts is type Abstract_Type is abstract new controlled with null record; procedure Initialize(Item : in out Abstract_Type'Class) is abstract; procedure Finalize(Item : in out Abstract_Type'Class) is abstract; procedure Print(Item : in Abstract_Type'Class) is abstract; end Adaline.Abstracts;
Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 with Adaline.Abstracts; package Adaline.Objects is type Object_Type is abstract new Abstracts.Abstract_Type with null record; procedure Initialize(Object : in out Object_Type'Class) is abstract; procedure Finalize(Object : in out Object_Type'Class) is abstract; procedure Print(Object : in Object_Type'Class) is abstract; type Object_Access is access all Object_Type'Class; end Adaline.Objects;
Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package Adaline.Objects.Computing is type Text_Type is new String; type Text_Access is access all Text_Type; package Directories is type Inode_type is new Long_Integer range 0..Long_Integer'Last; type Directory_Type is new Object_Type with record Name : Text_Access; Created : Time := Time_Of(1970, 1, 1, 0.0); Modified : Time := Time_Of(1970, 1, 1, 0.0); Last_Access : Time := Time_Of(1970, 1, 1, 0.0); Owner : Text_Access; Group : Text_Access; Inode : Inode_Type := 0; end record; end Directories; use Directories; end Adaline.Objects.Computing;
Mais à la compilation aucun message d'erreur ni warning.
Merci pour votre aide.




Répondre avec citation





Partager