From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Constructors with multiple inheritance
Date: Fri, 30 Sep 2011 09:36:20 +0200
Date: 2011-09-30T09:36:20+02:00 [thread overview]
Message-ID: <2pu3h5hqltxi$.ze4yrf1f2y8z.dlg@40tude.net> (raw)
In-Reply-To: 4976045.4489.1317352313370.JavaMail.geo-discussion-forums@yqjw35
On Thu, 29 Sep 2011 20:11:53 -0700 (PDT), Rego, P. wrote:
>> This is equivalent to:
>>
>> Obj := Construct (Obj.all);
>>
>> But Obj is null.
> Yes, I agree. But that's the point. I want to reserve the address (so I
> can build my queues from there).
The problem is not the result, but the argument of Construct.
>>> So, how can I fix this?
>>
>> I don't understand your design, but a constructing function of a
>> non-limited type is just:
>>
>> function Construct return Parent_Class;
> It works (and the current code utilizes this approach), but I cannot name
> it a method,
"method" is not an Ada term, but from the OO point of view Construct is a
method, because it is covariant in the result.
> since I cannot call the funtion from inside the class, using
> something like Object.Method.
X.Op is just a syntactic sugar for Op (X). It has nothing to do with an
operation being a method or not, except that in Ada the sugar is allowed
only for certain types of methods, rather than universally.
(The operation Op is a method of the type T in one of its arguments or the
result, when the type of that argument or result is T and Op is covariant
in it.)
> So I need to fix the
> package.function_constructor call and use a call of type
> object.method_constructor.
Why?
What is wrong with the abstract factory pattern?
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2011-09-30 7:35 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-29 19:40 Constructors with multiple inheritance Rego, P.
2011-09-29 20:20 ` Dmitry A. Kazakov
2011-09-30 3:11 ` Rego, P.
2011-09-30 7:36 ` Dmitry A. Kazakov [this message]
2011-09-30 14:04 ` Rego, P.
2011-09-30 16:29 ` Robert A Duff
2011-09-30 19:14 ` Rego, P.
2011-09-30 16:42 ` Dmitry A. Kazakov
2011-09-30 19:42 ` Rego, P.
2011-10-06 12:46 ` Julian Leyh
2011-11-09 2:24 ` Rego, P.
2011-11-09 8:39 ` Dmitry A. Kazakov
2011-11-10 3:47 ` Rego, P.
2011-11-10 7:09 ` AdaMagica
2011-11-10 7:20 ` AdaMagica
2011-11-10 8:35 ` Dmitry A. Kazakov
2011-11-12 15:16 ` Rego, P.
2011-11-12 15:30 ` Rego, P.
2011-11-12 16:28 ` Dmitry A. Kazakov
2011-11-12 17:41 ` Rego, P.
2011-11-10 8:33 ` Simon Wright
2011-11-10 9:01 ` Georg Bauhaus
2011-11-10 9:09 ` Georg Bauhaus
2011-11-10 18:16 ` Jeffrey Carter
2011-11-10 19:39 ` Dmitry A. Kazakov
2011-11-09 9:00 ` Simon Wright
2011-11-10 3:54 ` Rego, P.
2011-10-07 0:08 ` Shark8
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox