main.ml
plugins.ml
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 open Dynlink class main = object(self) val mutable liste = [] val mutable menu = [] method append plug = liste <- liste @ [plug] ; menu <- menu @ [plug#desc] method init = ignore(List.map (fun s -> print_string s; print_newline () ; ()) menu); initializer print_string "OK" end ;; let ma = main;; let _ = print_string "avant load"; loadfile(adat_filename "plug1.cma"); print_string "apres"; ma#init;;
main.mli
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 open Main class virtual plugin = object(self) val mutable desc = "" method desc = desc method virtual init : main -> unit end;;
quand je compile ces deux bouts de code il me dit que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class main : object val liste : plugin list method append : plugin -> unit method init : unit end
`a est unbound dans method append `a
dans le deuxième code que le type main est unbound
Donc mon problème est que j'ai fait une un appli qui trace diverses fonction suites et series mathématique,
j'ai une classe gui qui a un attribut qui représente la liste des plugins dispo (fonctions , suites ) et des plugins qui héritent d'une classe plugin
le pseudo code plus haut montre un peu mon approche
est-ce la bonne? comment je pourrai résoudre mes probleme de compilation (est-ce qu'il y a moyen de faire comme en C++ des truc du genre class plugin ;; dans le premier fichier) ?et si je suis à coté la plaque ben je vous demande conseil pour architecturer ça correctement?
merci
Partager