comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Constructing an object
Date: 30 Sep 2005 13:49:04 -0400
Date: 2005-09-30T13:49:04-04:00	[thread overview]
Message-ID: <wccirwi30q7.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: vNWdnUoV7Ptv-qHeRVn-vw@megapath.net

"Randy Brukardt" <randy@rrsoftware.com> writes:

> Ah, I see. Certainly you are right here. I see that a lot in Finalize
> routines; it is real easy to forget to call the Finalize for the parent
> type. There ought to be a better way of extending rather than replacing
> routines; that's especially true since requires an explicit type conversion
> to the parent to make that call, and it is easy to get wrong (and go
> infinitely recursive).

The Common Lisp Object System has such a feature.  You can declare
methods that are called in addition to the parent's version (either
before or after) rather than the more common feature of calling them
instead of the parent's version.  And I think there's a feature for
declaring a method that must call the parent's version somewhere within
it -- or something like that.

If such additional complexity were to be added to Ada (I doubt it!),
it would be a shame to make it work just for Initialize/Finalize.
It really should be a general purpose feature.  This need (where an
overriding "should" call the parent) comes up a lot in OO code;
Finalize is just a special case.

- Bob



  parent reply	other threads:[~2005-09-30 17:49 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-21  8:46 Constructing an object Maciej Sobczak
2005-09-21 10:16 ` Georg Bauhaus
2005-09-22  7:21   ` Maciej Sobczak
2005-09-21 11:55 ` Dmitry A. Kazakov
2005-09-22  7:28   ` Maciej Sobczak
2005-09-22  7:45     ` Maciej Sobczak
2005-09-22 13:33       ` Dmitry A. Kazakov
2005-09-24  5:23         ` Randy Brukardt
2005-09-24  9:47           ` Dmitry A. Kazakov
2005-09-29  0:12             ` Randy Brukardt
2005-09-29  8:17               ` Dmitry A. Kazakov
2005-09-29 22:21                 ` Randy Brukardt
2005-09-30  8:14                   ` Jean-Pierre Rosen
2005-09-30 19:28                     ` Dmitry A. Kazakov
2005-09-30 17:49                   ` Robert A Duff [this message]
2005-10-01  0:44                     ` Randy Brukardt
2005-10-01 10:49                       ` Dmitry A. Kazakov
2005-10-01 11:06                       ` Tapio Kelloniemi
2005-10-01 14:13                         ` Robert A Duff
2005-10-02 11:52                           ` Tapio Kelloniemi
2005-10-01 15:19                       ` Georg Bauhaus
2005-09-23  5:40 ` Matthew Heaney
2005-09-23  7:18   ` tmoran
2005-09-23  8:23   ` Maciej Sobczak
2005-09-23 12:04     ` Dmitry A. Kazakov
2005-09-23 12:36       ` Matthew Heaney
2005-09-23 13:03         ` Hyman Rosen
2005-09-23 13:41           ` Maciej Sobczak
2005-09-23 14:23           ` Matthew Heaney
2006-01-17  6:28             ` [Offtopic] " James Dennett
2005-09-23 13:42         ` Dmitry A. Kazakov
2005-09-23 14:27           ` Matthew Heaney
2005-09-23 12:24     ` Matthew Heaney
2005-09-24  5:34       ` Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox