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
next 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