Version française
Home     About     Download     Resources     Contact us    
Browse thread
porté des définitions des variables de classe
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Serge Fantino <fantino@m...>
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