From: "Rodrigo García" <rodrigo.garcia@epfl.ch>
Subject: Re: Problem Eliminating constructors
Date: Tue, 21 Jan 2003 12:43:01 +0100
Date: 2003-01-21T12:43:01+01:00 [thread overview]
Message-ID: <3E2D3245.2060903@epfl.ch> (raw)
In-Reply-To: 3e2c66a7$0$33929$bed64819@news.gradwell.net
Victor Porton wrote:
> In article <3E2BDFD8.4070805@epfl.ch>,
> Rodrigo Garc�a <rodrigo.garcia@epfl.ch> writes:
>
>>Victor Porton wrote:
>>
>>>package A is
>>>
>>> type A_Type is tagged
>>> record
>>> X: Integer;
>>> end;
>>>
>>> function Create(X: Integer) return A_Type; -- guess what is the body
>>>
>>>end A;
>>>
>>>Then I have
>>>
>>>type B_Type is new A.A_Type with
>>> record
>>> Y: Integer;
>>> end;
>>>
>>>Compiler requires me to override Create as the return type changes.
>>>But it is meaningless as now I need Create with two parameters
>>>instead of one.
>>>
>>>What to do?
>>
>> You do not need a constructor for this simple case. This will create
>>an A_Type object and initialize X to value 5.
>>
>> declare
>> My_A : A.A_Type := (X => 5);
>
> [skip]
>
> Oh, Rodrigo, I oversimplified the real situation. Initialization with
> just aggregates is possible only in the example, really I need namely
> constructor functions.
I see... Have you tried with controlled types?
Rodrigo
next prev parent reply other threads:[~2003-01-21 11:43 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-17 0:19 Problem Eliminating constructors Victor Porton
2003-01-17 15:21 ` John English
2003-01-17 21:10 ` Victor Porton
2003-01-18 15:19 ` Simon Wright
2003-01-20 11:39 ` Rodrigo García
2003-01-20 21:07 ` Victor Porton
2003-01-21 9:44 ` Dmitry A. Kazakov
2003-01-21 19:01 ` Martin Krischik
2003-01-21 11:43 ` Rodrigo García [this message]
2003-01-21 15:03 ` Stephen Leake
2003-01-21 13:09 ` Victor Porton
2003-01-22 15:26 ` Rodrigo García
2003-01-21 18:38 ` Victor Porton
2003-01-23 17:08 ` Stephen Leake
-- strict thread matches above, loose matches on Subject: below --
2003-01-17 6:54 Grein, Christoph
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox