comp.lang.ada
 help / color / mirror / Atom feed
From: "Adrian Hoe" <byhoe@greenlime.com>
Subject: Re: How to access parent class/object?
Date: 25 Mar 2005 00:08:30 -0800
Date: 2005-03-25T00:08:30-08:00	[thread overview]
Message-ID: <1111738110.562768.317150@f14g2000cwb.googlegroups.com> (raw)
In-Reply-To: <1111733830.271744.235420@f14g2000cwb.googlegroups.com>

Hi,

Sorry for polluting the bandwidth. I posted this thread without
thinking hard enough. Stupid me! :-)

For the benefits of newbies:

I use class wide type to over this problem.

package A is
   type A_Object is tagged private;
   type A_Object_Access is access all A_Object'Class;
...
end A;

package B is
   type B_Object is new A_Object with private;
   type B_Object_Access is access all B_Object'Class;
...
end B;

package C is
   type C_Object is new B_Object with private;
   type C_Object_Access is access all C_Object'Class;
...
end C;

package D is
   type D_Object is new C_Object with private;
   type D_Object_Access is access all D_Object'Class;
...
end D;

With the declaration:
   My_D_Object : D.D_Object_Access;

Now, call the procedure with:
   Process_C (C_Object_Access (My_D_Object));

This should solve the problem.

Cheers,
--
Adrian Hoe





Adrian Hoe wrote:
> Hi,
>
> I have the following codes (abbreviated):
>
> package A is
>    type A_Object is tagged private;
> ...
> end A;
>
> package B is
>    type B_Object is new A_Object with private;
> ...
> end B;
>
> package C is
>    type C_Object is new B_Object with private;
> ...
> end C;
>
> package D is
>    type D_Object is new C_Object with private;
> ...
> end D;
>
> Now, I have the following declaration:
>
> My_D_Object is D.D_Object;
>
> How can I reference the parent objects?
>
> procedure Process_C (C_Obj : access C_Object);
> procedure Process_D (D_Obj : access D_Object);
>
> How can I pass C_Object and D_Object into Process_C and Process_D
> respectively given only My_D_Object is D.D_Object?
> 
> Thanks.
> --
> Adrian Hoe




  parent reply	other threads:[~2005-03-25  8:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-25  6:57 How to access parent class/object? Adrian Hoe
2005-03-25  7:48 ` Dmitry A. Kazakov
2005-03-25  8:10   ` Adrian Hoe
2005-03-25  8:08 ` Adrian Hoe [this message]
2005-03-25  8:08 ` Adrian Hoe
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox