Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Unix.kill on Win32
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: brogoff@s...
Subject: Re: [Caml-list] static class member....
Yes, it says in the language introduction (the part on objects) 

	Let-bindings within class definitions are evaluated before the object 
	is constructed

so using a class local let bound ref works if you want the member to 
be unique on a per class basis. If you'd like the counter to apply to a class 
and everything that inherits from it, then you use module level let's like so 

module Foo =
  struct
    let counter = ref 0

    class c =
      object
        method get () = !counter
        method bump () = incr counter
      end
  end;;

A non-orthogonality of the let within a class is that let module isn't 
permitted. Is there any reason it isn't? 

As a side advice to the OP, it would be worthwhile to avoid the OOP and just 
get used to the ML part of Caml first. 

-- Brian

On Wed, 6 Aug 2003, Richard Jones wrote:

> On Wed, Aug 06, 2003 at 07:51:48AM -0700, David Brown wrote:
> > On Wed, Aug 06, 2003 at 03:45:23PM +0100, Richard Jones wrote:
> > > On Wed, Aug 06, 2003 at 04:57:26PM +0400, Vovka wrote:
> > > > Hi!!!!
> > > > 
> > > > Could you help me please. I'm newbie in ocaml programming, i used to write 
> > > > programmes in C++ , so I've faced    difficulties in introducing  static 
> > > > class member(==a common member for all objects of the same class).  Can i 
> > > > handle it in ocaml? Thanks a lot. 
> > > 
> > > This is one way to do it, there might be other easier ways:
> > > 
> > > class foo =
> > >   let counter = ref 0 in
> > 
> > But this counter will be unique for each new instance of the class.
> 
> Not so. Run my code & you'll see it works.
> 
> Rich.
> 
> -- 
> Richard Jones. http://www.annexia.org/ http://freshmeat.net/users/rwmj
> Merjis Ltd. http://www.merjis.com/ - all your business data are belong to you.
> MAKE+ is a sane replacement for GNU autoconf/automake. One script compiles,
> RPMs, pkgs etc. Linux, BSD, Solaris. http://www.annexia.org/freeware/makeplus/
> 
> -------------------
> To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
> Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> 

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners