From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,XPRIO autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,e01befd2b86cac20,start X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news.glorb.com!news.zanker.org!newsfeed00.sul.t-online.de!newsmm00.sul.t-online.de!t-online.de!news.t-online.com!not-for-mail From: "Rick Santa-Cruz" Newsgroups: comp.lang.ada Subject: problems with classes Date: Thu, 30 Sep 2004 23:20:47 +0200 Organization: T-Online Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.t-online.com 1096579267 03 9173 7NykXfy6AcfmI+G 040930 21:21:07 X-Complaints-To: usenet-abuse@t-online.de X-ID: GtdqQYZV8exrXqjHyFH3z1W8+YgkF8gOWZVotg50Wzvbh2IxvoKP48 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Original Xref: g2news1.google.com comp.lang.ada:4460 Date: 2004-09-30T23:20:47+02:00 List-Id: Hi, First of all I wanna thank all people in this group for the help. I am just a beginner in Ada and before I started Ada, I thought that cause I know C++ very well, it would be easy for me to understand Ada (in fact I made this experience with learning programmin languages like Java, Perl, C#, etc. after working a lot with C++). But this assumption was totally wrong. The syntax of Ada seems to me a bit strange, at least at the moment ;), but I am working hard to become better in Ada... Here are 2 examples of source-codes: 1. Source1: package Source_1 is type Parent_Class is tagged record Number: Integer; end record; type Child_Class is new Parent_Class with private; procedure Parent_Proc(P: Parent_Class); procedure Child_Proc(C: Child_Class); private type Child_Class is new Parent_Class with record Number2: Integer; end record; end Source_1; --------------------------------------------------------------------- 1. Source2: package Source_2 is type Parent_Class is tagged record Number: Integer; end record; type Child_Class is new Parent_Class with record Number2: Integer; end record; procedure Parent_Proc(P: Parent_Class); procedure Child_Proc(C: Child_Class); end Source_2; My question is now, why in the seconde code-example I get an error, that Parent_Class has to be declared ready, before I define the Child_Class? Why I don't get this error in the first case, cause there I specify the Child_Class with: "type Child_Class is new Parent_Class with private;", before I declare the procedure of the class Parent_Class? If this would be C++, I think I would know the answer... so in C++ "something like this" exists, too. It is called pre-definition of a type. That means that, for example if I need the name of a type before I wanna specify it, I can just write: class MyType; and specify it later. Is this the case in Ada too? Thanks in advance, Rick