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 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,aeb76e9a1032bd70 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-09-12 10:46:28 PST Newsgroups: comp.lang.ada Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!paloalto-snf1.gtei.net!chcgil2-snh1.gtei.net!nycmny1-snh1.gtei.net!news.gtei.net!newsfeed.mathworks.com!news.mathworks.com!uunet!ash.uu.net!xyzzy!nntp From: Jeffrey Carter Subject: Re: "type X is abstract tagged limited private" X-Nntp-Posting-Host: e246420.msc.az.boeing.com Content-Type: text/plain; charset=us-ascii Message-ID: <3B9F9A49.B7757ACD@boeing.com> Sender: nntp@news.boeing.com (Boeing NNTP News Access) Content-Transfer-Encoding: 7bit Organization: The Boeing Company X-Accept-Language: en References: <9nn76f$lml$1@newstoo.ericsson.se> Mime-Version: 1.0 Date: Wed, 12 Sep 2001 17:24:25 GMT X-Mailer: Mozilla 4.5 [en]C-CCK-MCD Boeing Kit (WinNT; U) Xref: archiver1.google.com comp.lang.ada:13059 Date: 2001-09-12T17:24:25+00:00 List-Id: Sebastian wrote: > > pragma pure; The package does not declare any library-level variables or named access types, nor does it require any elaboration at run time. > type X is abstract tagged limited private; X is an abstract tagged type, which means no objects may be declared of this type. The public view (outside the package) is limited private, which means no operations are defined for the type or its descendants except those declared in this package. Most importantly, assignment is not defined for the type. > procedure y(a : in X); There is a procedure named Y which operates on objects of type X and does something useful. Descendants of X will inherit this procedure. > private > type X is abstract tagged limited null record; The full view of type X (within the package) is an abstract tagged record with no components. The type is a limited type, which means that assignment, "=", and "/=" are not defined for the type or its descendants. The type and its descendants will be passed by reference. Tagged types are always passed by reference, and types with a full view that is limited are always passed by reference. This type is both. The visibility rules for child packages further complicate the matter, but this should be enough for now. As others have pointed out, a good textbook should prove helpful. You might also try the reference material and tutorials available through www.adapower.com -- Jeffrey Carter