Bonsoir à tous !!
je me lance dans la généricité en ada ... et je commence à suer ...
voila mon problème : j'ai mon fichier de programme principal avec ceci dans la partie déclaration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 type T_Element is record Num : Integer; Suivant : T_Lien; end record; package Operation_de_base is new Operation_base( T_Element ); use Operation_de_base; -- notre liste chaînée La_Queue : T_Liste;
Sachant que Operation_base est mon package parent générique et qu'il contient:
Comment puis-je faire pour éviter que JGrasp (compilateur) me dise:
Code : 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
30
31
32 generic -- définition d'un élément de la liste type T_Element is private; package Operation_base is -- définition de la liste des membres type T_Liste is private; type T_Lien is private; -- Saisie de donnée procedure Saisie(erreur : in out boolean; num : out integer); .... ... private -- un pointeur fait le lien entre les éléments de la liste type T_Lien is access all T_Element; -- définition de la liste chaînée type T_Liste is record Tete : T_Lien; Queue: T_Lien; end record; end;
J'ai essayé plusieurs chose genre mettre le type T_Element après l'instanciation du package et lui dire que la définition du type été après l'instanciation mais il me dit alors que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 struct_line.adb:25:17: "T_Lien" is not visible struct_line.adb:25:17: non-visible declaration at operation_base.ads:13
Pouvez-vous m'aider ? ça fait quand même bien 2h que je suis planté là dessus ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct_line.adb:26:53: premature use of incomplete type struct_line.adb:26:53: instantiation abandoned struct_line.adb:27:08: "Operation_de_base" is undefined struct_line.adb:31:17: "T_Lien" is not visible
Merci d'avance
Partager