From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Inherited Methods and such
Date: Sun, 30 Sep 2007 10:38:11 +0200
Date: 2007-09-30T10:38:12+02:00 [thread overview]
Message-ID: <18raoy77i431w.1diy3loydmq9h$.dlg@40tude.net> (raw)
In-Reply-To: 1191099160.227234.125330@r29g2000hsg.googlegroups.com
On Sat, 29 Sep 2007 13:52:40 -0700, Maciej Sobczak wrote:
> On 29 Wrz, 22:35, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>
>> 1. It breaks encapsulation as you should make the record nature of type
>> public.
>
> Why it would make any difference?
> The type is tagged and this is known. If it's tagged, then it has the
> record nature - no way and no reason to hide it.
It is a language fault that there are types which cannot be
user-constructed. The problem is that if you tried to fix the language, for
example by allowing a task object being shut down when finalized, you would
make them all records. Is it LISP or Ada?
>> 2. The base type cannot enforce vital construction code, when records are
>> exposed.
>
> I don't understand this part.
If the object is just a record I can assemble it in any available way. And
there are many of them. You will have a difficult design problem to ensure
that all these ways do call your construction code. For example:
Uninitialized base:
X : Base;
begin
return (X with ...) do ... end record;
Worked-around base:
return (X'(Xs_Base with Something) with ...) do ... end record;
>> 4. Dispatch upon construction completion and before destruction beginning
>> is still impossible.
> Why?
It goes this way:
return (Base with Mine) do My-take end record;
But the [class-wide] code to execute should be placed after "end record,"
IFF there is no following derived type under construction. Only compiler
magic can help here.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2007-09-30 8:38 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-17 14:26 Inherited Methods and such shaunpatterson
2007-09-17 15:11 ` Ludovic Brenta
2007-09-17 16:46 ` shaunpatterson
2007-09-17 19:07 ` Ludovic Brenta
2007-09-17 20:22 ` Maciej Sobczak
2007-09-17 21:07 ` Ludovic Brenta
2007-09-18 14:27 ` Maciej Sobczak
2007-09-18 14:27 ` Maciej Sobczak
2007-09-18 15:25 ` Dmitry A. Kazakov
2007-09-18 18:34 ` Ludovic Brenta
2007-09-18 19:29 ` Dmitry A. Kazakov
2007-09-18 19:39 ` Ludovic Brenta
2007-09-18 20:49 ` Dmitry A. Kazakov
2007-09-18 21:10 ` Simon Wright
2007-09-18 20:39 ` Maciej Sobczak
2007-09-18 21:12 ` Dmitry A. Kazakov
2007-09-19 14:49 ` Maciej Sobczak
2007-09-19 15:16 ` Dmitry A. Kazakov
2007-09-19 22:13 ` Maciej Sobczak
2007-09-20 8:12 ` Dmitry A. Kazakov
2007-09-20 13:52 ` Maciej Sobczak
2007-09-20 16:22 ` Dmitry A. Kazakov
2007-09-20 20:45 ` Maciej Sobczak
2007-09-21 18:59 ` Dmitry A. Kazakov
2007-09-21 21:02 ` Maciej Sobczak
2007-09-22 8:48 ` Dmitry A. Kazakov
2007-09-22 21:53 ` Maciej Sobczak
2007-09-23 8:41 ` Dmitry A. Kazakov
2007-09-23 20:36 ` Maciej Sobczak
2007-09-24 9:32 ` Dmitry A. Kazakov
2007-09-24 15:02 ` Maciej Sobczak
2007-09-24 19:20 ` Dmitry A. Kazakov
2007-09-25 20:53 ` Maciej Sobczak
2007-09-26 10:42 ` Dmitry A. Kazakov
2007-09-26 21:31 ` Maciej Sobczak
2007-09-27 15:02 ` Dmitry A. Kazakov
2007-09-27 21:02 ` Maciej Sobczak
2007-09-26 12:21 ` Robert A Duff
2007-09-26 12:54 ` Dmitry A. Kazakov
2007-09-26 21:37 ` Maciej Sobczak
2007-09-26 23:47 ` Randy Brukardt
2007-09-27 21:08 ` Maciej Sobczak
2007-09-28 0:44 ` Randy Brukardt
2007-09-28 20:32 ` Maciej Sobczak
2007-09-28 22:35 ` Randy Brukardt
2007-09-29 23:58 ` Robert A Duff
2007-09-26 12:26 ` Robert A Duff
2007-09-26 21:50 ` Maciej Sobczak
2007-09-26 22:20 ` Ray Blaak
2007-09-27 0:01 ` Randy Brukardt
2007-09-27 13:39 ` Robert A Duff
2007-09-27 14:54 ` Dmitry A. Kazakov
2007-09-28 0:35 ` Randy Brukardt
[not found] ` <7p6gc1s9imfa$.kmvwf5zyf8e9.dlg@40tude.net>
2007-09-28 22:53 ` Randy Brukardt
2007-09-29 20:37 ` Dmitry A. Kazakov
2007-09-27 21:23 ` Maciej Sobczak
2007-09-28 19:12 ` Robert A Duff
2007-09-28 19:02 ` Robert A Duff
2007-09-28 19:42 ` Robert A Duff
2007-09-28 20:44 ` Maciej Sobczak
2007-09-28 22:40 ` Randy Brukardt
2007-09-29 20:35 ` Dmitry A. Kazakov
2007-09-29 20:52 ` Maciej Sobczak
2007-09-30 8:38 ` Dmitry A. Kazakov [this message]
2007-09-29 23:47 ` Robert A Duff
2007-09-29 20:48 ` Maciej Sobczak
2007-09-29 23:39 ` Robert A Duff
2007-09-30 8:38 ` Dmitry A. Kazakov
2007-09-29 23:42 ` Robert A Duff
2007-09-25 1:59 ` Randy Brukardt
2007-09-25 8:59 ` Dmitry A. Kazakov
2007-09-25 21:02 ` Randy Brukardt
2007-09-26 12:42 ` Dmitry A. Kazakov
2007-09-18 4:03 ` Steve
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox