From: brogoff@speakeasy.net
To: Richard Jones <rich@annexia.org>
Cc: David Brown <caml-list@davidb.org>, Vovka <jove@newmail.ru>,
"caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] static class member....
Date: Wed, 6 Aug 2003 09:12:24 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.44.0308060901130.15452-100000@grace.speakeasy.net> (raw)
In-Reply-To: <20030806151051.GB29704@redhat.com>
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
next prev parent reply other threads:[~2003-08-06 16:12 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-06 12:35 [Caml-list] Unix.kill on Win32 James Scott
2003-08-06 12:57 ` [Caml-list] static class member Vovka
2003-08-06 14:45 ` Richard Jones
2003-08-06 14:51 ` David Brown
2003-08-06 15:10 ` Richard Jones
2003-08-06 16:12 ` brogoff [this message]
2003-08-06 17:43 ` Richard Jones
2003-08-06 18:11 ` David Brown
2003-08-06 18:30 ` William Lovas
2003-08-06 18:14 ` Nicolas Cannasse
2003-08-07 0:12 ` Jacques Garrigue
2003-08-07 5:20 ` james woodyatt
2003-08-07 17:02 ` brogoff
2003-08-07 21:53 ` John Max Skaller
2003-08-06 16:24 ` David Brown
2003-08-07 0:21 ` [Caml-list] Unix.kill on Win32 Jacques Garrigue
2003-08-07 0:41 ` Jacques Garrigue
2003-08-08 14:38 [Caml-list] static class member Arturo Borquez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.44.0308060901130.15452-100000@grace.speakeasy.net \
--to=brogoff@speakeasy.net \
--cc=caml-list@davidb.org \
--cc=caml-list@inria.fr \
--cc=jove@newmail.ru \
--cc=rich@annexia.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox