Browse thread
[Caml-list] Unix.kill on Win32
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ 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