comp.lang.ada
 help / color / mirror / Atom feed
From: "Rick Santa-Cruz" <rick_santa_cruz75@msn.com>
Subject: private classes
Date: Sat, 2 Oct 2004 22:35:01 +0200
Date: 2004-10-02T22:35:01+02:00	[thread overview]
Message-ID: <cjn3e9$moq$05$1@news.t-online.com> (raw)

Hi,

sorry for so many question, but always when I thought I understand it, I 
read further and see a new problem... so given the following source-code:
package Classes is
 type Base_1 is tagged private;

 type Derived_1 is new Base_1 with private;

 procedure Proc(B: Base_1);

 private
  type Base_1 is tagged record
   Number: Integer;
  end record;

  type Derived_1 is new Base_1 with null record;
end Classes;

package body Classes is
 procedure Proc(b: Base_1) is
 begin
  null;
 end Proc;
end Classes;

with Classes;

procedure main is
 D: Classes.Derived_1;
begin
 Classes.Proc(D);
end Main;

I get an error in calling Classes.Proc(D). Although I thought that cause 
Derived_1 inherits from Base_1 the call should be possible. In fact exactly 
this I found in the book from John English in chapter 14.5. Why can't I 
compile such, although I thought the function Proc is visible for clients of 
the package Classes.
My second question is then, if the above does not work (and I really wonder 
why) then, what would it make for a difference if instead of writing:
type Derived_1 is new Base_1 with private;
I write:
type Derived_1 is private;
and then in the private-part of the package:
type Derived_1 is new Base_1 with null_record;
What would be the difference between that and the definition above?

Thanks tons in advance, cause I really start to become desperate ;(.

Bye,
Rick





             reply	other threads:[~2004-10-02 20:35 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-02 20:35 Rick Santa-Cruz [this message]
2004-10-02 21:12 ` private classes Rick Santa-Cruz
2004-10-03 19:11   ` Ludovic Brenta
2004-10-03 16:36 ` Martin Krischik
replies disabled

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