Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
creating fresh objects of type 'self
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Markus Mottl <mottl@m...>
Subject: creating fresh objects of type 'self

is there a convenient way of creating objects of type 'self in classes?

Cloning is easy, e.g:

  class foo = object
    method clone = {< >}

which yields an object not necessarily of type "foo" but possibly of
a subclass.

But I wonder, how I can do something similar to get a "fresh" object.
I would like to be able to have something like:

  class foo = object (_ : 'self)
    method create = new 'self

The only possibility I know to get the intended result is rather
inconvenient: I do as in "clone", but reinitialize all member data with
their initial data. This is not only error-prone, but possibly quite a
lot of work.

Am I overseeing an obvious short solution?

The original idea is to have a parent *object* passing "self" to a child
*object* it has just created itself (note that I mean concrete objects,
not classes).

Best regards,
Markus Mottl

Markus Mottl,,