2017-10-01 6 views
0

私はA(親)とB(子)という2つのクラスがあるとしましょう。 AはBオブジェクトのリストを格納し、BはAオブジェクトの単一インスタンスを含む変数を格納します。OCaml互いに依存するクラスをコンパイルする

以来:

は、私の知る限りでは、OCamlはそれらの依存関係に基づいて、特定の順序で指定するクラスが必要です(ocamlopt -o main D.ml C.ml CはDに依存している場合、すなわち、次のようなコードをコンパイルする必要があります)クラスAとクラスBは互いに非常に密接に依存していますが、どのようにして2つのクラスを一緒にコンパイルできますか?

答えて

1

同じソースファイル内で2つのクラスを定義し、それらを再帰的に定義するためにandを使用することができます。

# class a = object val my_b_list : b list = [] end 
    and b = object val my_a : a = new a end;; 
class a : object val my_b_list : b list end 
and b : object val my_a : a end 

これらを別々のファイルで定義する必要がある場合は、それらのファイルの1つを別のファイルのタイプでパラメータ化できます。これはもっと複雑です。

関連する問題