From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: generic unit : compilation error ! please help me
Date: Fri, 24 Feb 2006 11:51:21 +0100
Date: 2006-02-24T11:51:21+01:00 [thread overview]
Message-ID: <hhcgadm63k6s.kxskbzzn8quc.dlg@40tude.net> (raw)
In-Reply-To: 1140772786.942747.88370@j33g2000cwa.googlegroups.com
On 24 Feb 2006 01:19:47 -0800, nblanpain@hotmail.com wrote:
> ## parent.ads ## :
> generic
> type T_Real is digits <>;
> package Parent is
> type T_Parent is tagged private;
> type T_Parent_Access is access all T_Parent;
> private
> type T_Parent is tagged record
> Real : T_Real;
> end record;
> end Parent;
>
> ## child.ads ##
> with Parent;
> generic
> type T_Real is digits <>;
> with package Par is new Parent (T_Real);
> package Child is
> type T_Child is new Par.T_Parent with private;
> type T_Child_Access is access all T_Child;
> private
> type T_Child is new Par.T_Parent with record
> Real2 : T_Real;
> end record;
> end Child;
>
> ## parent-test_unit.ads ##
> generic
> package Parent.Test_Unit is
> subtype T_Unit_To_Test is Parent.T_Parent;
> subtype T_Unit_To_Test_Access is Parent.T_Parent_Access;
> type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
> type T_Test_Unit is tagged private;
> type T_Test_Unit_Access is access all T_Test_Unit;
> procedure Set_Unit_To_Test
> (This : in out T_Test_Unit;
> Utt : in T_Unit_To_Test_Class_Access);
> private
> type T_Test_Unit is tagged record
> Unit_To_Test : T_Unit_To_Test_Class_Access;
> end record;
> end Parent.Test_Unit;
>
> ## parent-test_unit.adb ##
> package body Parent.Test_Unit is
> procedure Set_Unit_To_Test
> (This : in out T_Test_Unit;
> Utt : in T_Unit_To_Test_Class_Access) is
> begin
> This.Unit_To_Test := Utt;
> end Set_Unit_To_Test;
> end Parent.Test_Unit;
>
> ## child-test_unit.ads ##
> with Parent.Test_Unit;
> generic
> with package Parent_Test_Unit is new Parent.Test_Unit;
with package Parent_Test_Unit is new Par.Test_Unit;
Parent of Child and Parent of Parent.Test_Unit should be the same beast.
> package Child.Test_Unit is
> subtype T_Unit_To_Test is Child.T_Child;
> subtype T_Unit_To_Test_Access is Child.T_Child_Access;
> type T_Unit_To_Test_Class_Access is access all T_Unit_To_Test'Class;
> type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with private;
> type T_Test_Unit_Access is access all T_Test_Unit;
> procedure Set_Unit_To_Test
> (This : in out T_Test_Unit;
> Utt : in T_Unit_To_Test_Class_Access);
> private
> type T_Test_Unit is new Parent_Test_Unit.T_Test_Unit with record
> Unit_To_Test2 : T_Unit_To_Test_Class_Access;
> end record;
> end Child.Test_Unit;
>
> ## child-test_unit.adb ##
> package body Child.Test_Unit is
> procedure Set_Unit_To_Test
> (This : in out T_Test_Unit;
> Utt : in T_Unit_To_Test_Class_Access) is
> begin
> Parent_Test_Unit.Set_Unit_To_Test
> (Parent_Test_Unit.T_Test_Unit (This),
> Parent_Test_Unit.T_Unit_To_Test_Class_Access (Utt)); --
> error !!!!!!!
> This.Unit_To_Test2 := Utt;
> end Set_Unit_To_Test;
> end Child.Test_Unit;
P.S. Don't use pointers, generics and Hungarian notation.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
prev parent reply other threads:[~2006-02-24 10:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1140772786.942747.88370@j33g2000cwa.googlegroups.com>
2006-02-24 10:51 ` generic unit : compilation error ! please help me Stephen Leake
2006-02-24 10:51 ` Dmitry A. Kazakov [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox