porté des définitions des variables de classe

From: Serge Fantino (fantino@math.unice.fr)
Date: Mon Oct 05 1998 - 17:10:07 MET DST


Date: Mon, 05 Oct 1998 16:10:07 +0100
From: Serge Fantino <fantino@math.unice.fr>
To: caml-list@inria.fr
Subject: porté des définitions des variables de classe

Ocaml-2.0 autorise la déclaration de classe suivante:

class test =
object
    val v = [|Random.int 1000|]
    method get = v.(1)
    method set x = v.(1)<-x
end

Bizarrement, les objets créés à partir de cette définition semblent
tous partager la meme variable v:

let a = new test;;
let b = new test;;

a#get;;
b#get;;
(* retourne la meme valeur *)

a#set (Random.int 1000);;
a#get;;
b#get;;
(* a et b sont tous les 2 modifiés *)

Si l'on déclare la classe différement:

class test () =
...

alors tout redevient "normal".

Est-ce que c'est un bug ? Ou est-ce une nouvelle fonctionnalitée ?

Serge Fantino



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:16 MET