TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Proportional Font
Show Text Part by Default
Condense Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender: "Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Date: Sun, 22 Sep 2002 20:59:34 -0700
Reply-To: Tom Moran <[log in to unmask]>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
Organization: Decision Aids
From: Tom Moran <[log in to unmask]>
Parts/Attachments: text/plain (23 lines)
>  type Active_Area_Access_Type is
>       access all Active_Area_Type'Class;
  I think you want to drop the "all".  You only need it if your access
value will point to non-allocated storage, ie, global memory or the
  X : aliased Active_Area_Type;
  Pointer_To_X : Active_Area_Access_Type := X'access;
You certainly wouldn't want to try to "free" a chunk out of global
memory.  The declaration
 type Active_Area_Access_Type is
      access     Active_Area_Type'Class;
means that Active_Area_Access_Type can *only* refer to things created by
"new", and they can be freed via Ada.Unchecked_Deallocation

> 1. When I create a derived class, the methods of that class have no
> direct assess to the attributes of the base class
  type Y is new X with private;
  Old_Size : constant Integer := X'size;
is perfectly legal.  Or do you mean something other than Ada
"attributes".  If, perhaps, you mean that the methods of Y should have
access to the private parts of X, then Y needs to be in the same, or a
child package of, X.