* Re: Class object initialization....
[not found] <343BEFFE.200574F6@linkabit.titan.com>
@ 1997-10-09 0:00 ` Jon S Anthony
0 siblings, 0 replies; only message in thread
From: Jon S Anthony @ 1997-10-09 0:00 UTC (permalink / raw)
In article <343BEFFE.200574F6@linkabit.titan.com> Marc Bejerano <t_mjb@linkabit.titan.com> writes:
> type foo is tagged record
> a: integer := -1234;
> end record;
>
> type bar is new foo with record
> b: natural := 1234;
> end record;
>
> How would I "initialize" data member 'a' inside of bar? In C++ I would
> do this in the constructor. How would I do this in Ada95? (Can I do this
> in Ada95?)
What do you mean by "inside of bar"?? Wherever the structures are
visible an aggregate takes the place of a C++ constructor:
X : Bar := (A => 13, B => 31);
or simply
X : Bar := (13, 31);
or, in a derived case such as this
X : Bar := (foo with B => 77);
If the structures are not visible, you could use controlled types,
which have user definable initialization procedures per type. You
might also try discriminants.
/Jon
--
Jon Anthony
STL, Belmont, MA 02178, 617.484.3383
"Nightmares - Ha! The way my life's been going lately,
Who'd notice?" -- Londo Mollari
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~1997-10-09 0:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <343BEFFE.200574F6@linkabit.titan.com>
1997-10-09 0:00 ` Class object initialization Jon S Anthony
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox