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,acb50cdf95d3e13c X-Google-Attributes: gid103376,public From: jsa@alexandria (Jon S Anthony) Subject: Re: Extending A Generic Signature Package Date: 1997/03/21 Message-ID: #1/1 X-Deja-AN: 227359943 Distribution: world References: <5gkv23INN3rn@thalamus.cis.ohio-state.edu> Organization: PSI Public Usenet Link Newsgroups: comp.lang.ada Date: 1997-03-21T00:00:00+00:00 List-Id: In article <5gtvbv$1nj@pandora.cs.utwente.nl> boschg@cs.utwente.nl (Geert Bosch) writes: > Dispatching occurs when you use (pointers to) class-wide types like > in the following case: > > declare > type Object_Ptr is access all Base'Class; > X : Object_Ptr := new Base; > begin > Op1 (X.all); > end; Just to be clear, "pointers" are only indirectly relevant to dispatching. The key is passing a class wide type argument(s) to a controlling operand(s) of a primitive operation. For example, there is no need of a pointer in your above example: declare X : Base'Class := Get_Object; begin Op1(X); end; /Jon -- Jon Anthony Organon Motives, Inc. Belmont, MA 02178 617.484.3383 jsa@organon.com