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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9fb7299100a4c4db X-Google-Attributes: gid103376,public From: stt@houdini.camb.inmet.com (Tucker Taft) Subject: Re: Abstract realizations can't be inherited?? Date: 1998/08/27 Message-ID: #1/1 X-Deja-AN: 385427377 Sender: news@inmet.camb.inmet.com (USENET news) X-Nntp-Posting-Host: houdini.camb.inmet.com References: <6s491q$usm$1@nnrp1.dejanews.com> Organization: Intermetrics, Inc. Newsgroups: comp.lang.ada Date: 1998-08-27T00:00:00+00:00 List-Id: dennison@telepath.com wrote: : I had a situation today where I wanted to declare a new tagged type which is : very similar to an existing one I had. Ahh, classic OO. I just derive it from : the existing type, and redefine the one operation that changed, right? Wrong! : The existing type's operations that I wanted to inherit are overrides of : abstract subprograms inherited from its parent type. The compiler blows up : and points to 3.9.3(6), which appears to say that I have to explicitly : override every abstract subprogram any "ancestor" type has. ^^^ Not "any" ancestor, but rather *the* ancestor specified in the definition of the type extension. For a record extension, "the" ancestor is the direct parent. For a private extension, "the" ancestor is the one named in the private extension declaration. : ... That means that : if a type is declared abstract, none of the "standard" operations you declare : for it can ever be inherited! What on earth is the logic behind that : restriction? This is not the intent of 3.9.3(6). It is only talking about the type from which the subprograms are inherited. For a record extension, it is the direct parent. For a private extension, it is whatever ancestor is specified. It would be helpful if you included the relevant source code. It may either be that there is a compiler bug, or that the description above lacks some critical detail. : T.E.D. -- -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Burlington, MA USA