From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: abstract sub programs overriding
Date: Thu, 11 Mar 2004 17:28:55 +0100
Date: 2004-03-11T17:28:55+01:00 [thread overview]
Message-ID: <qc3150ls7h74bk9hdvbaos589iiu5pm321@4ax.com> (raw)
In-Reply-To: 1079019616.621636@master.nyc.kbcfp.com
On Thu, 11 Mar 2004 10:40:02 -0500, Hyman Rosen <hyrosen@mail.com>
wrote:
>Dmitry A. Kazakov wrote:
>> No, this is just a contract model.
>
>Between what parties?
Interface developer and its user
>> These are different things - to have a bad design or to have a good
>> one, but poorly coded one.
>
>You want your language to help you catch the poor coding. That's why
>Ada catches bounds errors, for example.
Exactly
>> You cannot do it right if the language does not support object
>> construction properly.
>
>The concept of two-phase initialization is a backward step in OO.
If that would be true, no C++ library would have Init() in each and
other class.
>The paradigm of C++'s *tor mechanism is that other methods don't
>ever need object validity checks, because constructors make the
>object kosher.
But they cannot do it, when dispaching methods need to be called as a
part of base specific object construction.
>> I tried to show that the source of the problem is that to construct T
>> /= to construct T'Class.
>
>This makes no sense.
Any primitive operation (method) can be either dispatching or
class-wide. So a constructor / destructor. This a programmer's choice,
not one of the language, if one wishes to make some parts of
constructor overridable (=dispatching), some not (=specific), and some
common for all descendants (=class-wide).
> A general object, in the OO world, may have each
>derived class require services from its base class, even during object
>construction. Bases may need to invoke services from derived classes,
>such as in the template method design pattern. When the latter is
>invoked from the former, problems arise. I have no idea what this has
>to do with being classwide or not.
It quite obvious: "To invoke a service from a derived type" is a more
complicated way to say "to dispatch". But dispatching is possible on
class-wide objects only.
--
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2004-03-11 16:28 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-02 19:01 abstract sub programs overriding Evangelista Sami
2004-03-03 1:43 ` Stephen Leake
2004-03-05 15:02 ` Evangelista Sami
2004-03-05 16:15 ` Marius Amado Alves
2004-03-08 18:54 ` Adam Beneschan
2004-03-08 23:42 ` Marius Amado Alves
2004-03-05 16:26 ` Marius Amado Alves
2004-03-06 9:31 ` Simon Wright
2004-03-06 15:18 ` Evangelista Sami
2004-03-06 19:09 ` Marius Amado Alves
2004-03-07 12:35 ` Simon Wright
2004-03-07 13:39 ` Marius Amado Alves
2004-03-08 19:08 ` Adam Beneschan
2004-03-08 20:03 ` Hyman Rosen
2004-03-09 8:51 ` Dmitry A. Kazakov
2004-03-09 13:34 ` Hyman Rosen
2004-03-09 14:49 ` Dmitry A. Kazakov
2004-03-09 15:14 ` Hyman Rosen
2004-03-09 15:56 ` Dmitry A. Kazakov
2004-03-09 16:32 ` Hyman Rosen
2004-03-10 9:32 ` Dmitry A. Kazakov
2004-03-10 13:08 ` Hyman Rosen
2004-03-10 14:58 ` Robert I. Eachus
2004-03-10 16:00 ` Hyman Rosen
2004-03-10 18:07 ` Robert I. Eachus
2004-03-10 20:04 ` Hyman Rosen
2004-03-11 2:43 ` Robert I. Eachus
2004-03-11 13:55 ` Hyman Rosen
2004-03-12 23:02 ` Robert I. Eachus
2004-03-14 21:33 ` Hyman Rosen
2004-03-15 5:59 ` Robert I. Eachus
2004-03-15 14:39 ` Hyman Rosen
2004-03-16 16:16 ` Robert I. Eachus
2004-03-16 16:51 ` Hyman Rosen
2004-03-16 19:54 ` Hyman Rosen
2004-03-16 23:16 ` Randy Brukardt
2004-03-17 1:54 ` Robert I. Eachus
2004-03-16 23:14 ` Randy Brukardt
2004-03-17 2:43 ` Robert I. Eachus
2004-03-17 17:40 ` Randy Brukardt
2004-03-18 2:39 ` Robert I. Eachus
2004-03-18 5:57 ` Randy Brukardt
2004-03-18 15:03 ` Hyman Rosen
2004-03-18 20:32 ` Randy Brukardt
2004-03-19 3:59 ` Hyman Rosen
2004-03-19 19:37 ` Randy Brukardt
2004-03-16 6:00 ` Randy Brukardt
2004-03-11 10:09 ` Dmitry A. Kazakov
2004-03-11 14:10 ` Hyman Rosen
2004-03-11 14:59 ` Dmitry A. Kazakov
2004-03-11 15:40 ` Hyman Rosen
2004-03-11 16:28 ` Dmitry A. Kazakov [this message]
2004-03-11 17:26 ` Hyman Rosen
2004-03-12 8:53 ` Dmitry A. Kazakov
2004-03-12 13:09 ` Hyman Rosen
2004-03-12 14:00 ` Dmitry A. Kazakov
2004-03-12 14:56 ` Hyman Rosen
2004-03-12 18:19 ` Dmitry A. Kazakov
2004-03-12 18:34 ` Hyman Rosen
2004-03-12 20:05 ` Georg Bauhaus
2004-03-13 10:12 ` Dmitry A. Kazakov
2004-03-12 18:07 ` Robert I. Eachus
2004-03-10 15:51 ` Evangelista Sami
2004-03-11 1:38 ` Dan Eilers
2004-03-06 23:20 ` Dan Eilers
2004-03-03 12:00 ` Marius Amado Alves
2004-03-13 7:51 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox