comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <no.spam@no.spam.com>
Subject: Re: tagged record child: override constructor?
Date: Wed, 14 Sep 2005 11:05:10 +0200
Date: 2005-09-14T11:05:10+02:00	[thread overview]
Message-ID: <dg8p45$74f$1@sunnews.cern.ch> (raw)
In-Reply-To: <1idpvzxcxfckw.mrs8nw3eu4ks$.dlg@40tude.net>

Dmitry A. Kazakov wrote:

> C++ model is more tricky and in some aspects more limited. Only the prefix
> (distinguished) parameter can be controlled (the "this-parameter".)

There is a distinction between static and dynamic type and also a 
distinction between class member non-static functions and free functions 
as well as between non-static member functions being virtual or not.

The "first" parameter causes the virtual dispatch on the dynamic type of 
the object when it is used as a prefix for a virtual member function.
In all other cases (including further parameters) it is the static type 
of the object that drives the dispatch.

> There is no difference between T and
> T'Class (the source of countless problems.)

Could you elaborate?

> So all operations re-dispatch

What does that mean?

> except for constructors and destructors, which don't.

They do, but there the dynamic and static type of the object is the 
same, which actually saves a lot of problems.

> I.e. it is rather C++
> where the call site determines whether a virtual function dispatches.

It always does, independent on the call site. It is rather the dynamic 
type of the object that changes during construction and destruction, 
thus leading to the "virtual functions don't work" impression.

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/



  reply	other threads:[~2005-09-14  9:05 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-13  5:58 tagged record child: override constructor? sean.gilbertson
2005-09-13  6:39 ` David Trudgett
2005-09-13  7:32 ` Dmitry A. Kazakov
2005-09-13  7:56   ` tmoran
2005-09-13 15:23   ` sean.gilbertson
2005-09-13 17:37     ` Martin Krischik
2005-09-13 19:29       ` Ludovic Brenta
2005-09-14  7:49         ` Dmitry A. Kazakov
2005-09-14  9:05           ` Maciej Sobczak [this message]
2005-09-14 13:20             ` Dmitry A. Kazakov
2005-09-14 13:52               ` Hyman Rosen
2005-09-14 16:47                 ` Dmitry A. Kazakov
2005-09-14 17:16                   ` Hyman Rosen
2005-09-14 20:20                     ` Dmitry A. Kazakov
2005-09-14 20:34                       ` Georg Bauhaus
2005-09-14 20:56                       ` Hyman Rosen
2005-09-15  7:31                         ` Dmitry A. Kazakov
2005-09-15 13:19                           ` Hyman Rosen
2005-09-15 13:45                             ` Maciej Sobczak
2005-09-15 17:45                             ` Dmitry A. Kazakov
2005-09-15 18:54                               ` Hyman Rosen
2005-09-16  9:32                                 ` Dmitry A. Kazakov
2005-09-16 14:52                                   ` Hyman Rosen
2005-09-16 15:33                                     ` Jean-Pierre Rosen
2005-09-16 18:37                                       ` Hyman Rosen
2005-09-16 21:03                                     ` Dmitry A. Kazakov
2005-09-16 21:33                                       ` Hyman Rosen
     [not found]                                         ` <98ox2x9xvj9z.1uh92dslhvt4g.dlg@40tude.net>
2005-09-17 12:47                                           ` Georg Bauhaus
2005-09-17 15:56                                             ` Dmitry A. Kazakov
2005-09-14 16:14           ` Martin Krischik
2005-09-14 16:57             ` Dmitry A. Kazakov
2005-09-14 18:35               ` Martin Krischik
2005-09-14  9:28         ` Alex R. Mosteo
2005-09-14 16:10         ` Martin Krischik
2005-09-13  9:33 ` Georg Bauhaus
2005-09-13 16:37 ` Jeffrey Carter
2005-09-13 18:55   ` Robert A Duff
2005-09-13 22:18     ` Jeffrey Carter
replies disabled

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