From: Christopher Campise <crc@amherst.com>
Subject: Re: Assistance on extending a private record from a private record with a generic attribute...
Date: 1998/04/17
Date: 1998-04-17T00:00:00+00:00 [thread overview]
Message-ID: <353768D0.6C6B0186@amherst.com> (raw)
In-Reply-To: 199804171332.PAA11214@basement.replay.com
Thanks for your help, but with all due respect ,on Tucker's behalf, he did
point out that 'generic' is a reserved word in his reply to my inquiry.
But on another note, if I have a private record type extension from my generic
package and I want to extend THIS record to create a 3 level inheritance tree:
My generic class
****
generic
type Value_Class is tagged private;
package My_Generic is
type Class is tagged private;
...
private
type Class is tagged
record
Some_Value : Value_Class;
end record;
end My_Generic;
***
***
with my_generic;
generic
with package My_Class is new My_Generic(<>);
package My_Class is
type Class is new My_Class.Class with private;
...
private
type Class is new My_Class.Class with
record
Value1 : Integer;
Value2 : Integer;
end record;
end My_Class;
If I wanted to extend My_Class, would the following be acceptable?
***
with my_class;
package another_class is
type Class is new my_Class.class with private;
...
private
type class is new my_class with
record
another_value : Integer;
end;
end another_class;
Please excuse my ignorance. I'm fairly new to Ada95.
Anonymous wrote:
> <35364E81.94B51B0F@amherst.com>
>
> On Thu, 16 Apr 1998 21:26:10 GMT, stt@houdini.camb.inmet.com (Tucker
> Taft) wrote:
>
> > Christopher Campise (crc@amherst.com) wrote:
> >
> > : Ada95 on a Rational Apex compiler:
> > : I have a "superclass" with a private record consisiting of a generic
> > : type attribute. I need to inherit this from within another package but
> > : am receiving compiler errors stating that "a record extension will be
> > : provided iff the parent record is tagged," (which it is). Is this even
> > : legal? I looked everywhere for examples and found none that relate to
> > : this, adahome.com, Programming in Ada95, Rendezvous with Ada95, plus
> > : other tutorials. Any ideas?
> >
> > You cannot select items from a generic package. You must
> > first instantiate the generic package, and select items from
> > the instance.
> >
> > : For example:
> >
> > : ***********
> > : generic
> > : type Value_Class is private;
> >
> > : package Generic is
> > : type Class is tagged private;
> > ...
>
> Surprisingly, even Tucker Taft did not point out that you cannot have a
> package named Generic. "generic" is a reserved word.
>
> Assuming that you change the name, perhaps to Generic_Class, then you
> still don't have a package, so you can't refer to its type Class. You
> need to instantiate the generic:
>
> package My_Class is new Generic_Class (Value_Class => My_Type);
>
> Now you have a package named My_Class, and may refer to My_Class.Class.
>
> Jeff Carter PGP:1024/440FBE21
> My real e-mail address: ( carter @ innocon . com )
> "Son of a window-dresser."
> Monty Python & the Holy Grail
>
> Posted with Spam Hater - see
> http://www.compulink.co.uk/~net-services/spam/
--
Christopher Campise, Associate Engineer
Amherst Systems Inc.
30 Wilson Road
Buffalo, NY 14221
phone: (716)631-0610 x384
E-Mail: crc@amherst.com
WWW: www.amherst.com
next prev parent reply other threads:[~1998-04-17 0:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-04-16 0:00 Help on extending a private record from a private record with a generic attribute Christopher Campise
1998-04-16 0:00 ` Tucker Taft
1998-04-17 0:00 ` Assistance " Anonymous
1998-04-17 0:00 ` Christopher Campise [this message]
1998-04-17 0:00 ` Tucker Taft
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox