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: fac41,c52c30d32b866eae X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,2ea02452876a15e1 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,c52c30d32b866eae X-Google-Attributes: gid1108a1,public From: jsa@organon.com (Jon S Anthony) Subject: Re: Real OO Date: 1996/05/02 Message-ID: #1/1 X-Deja-AN: 152505633 sender: news@organon.com (news) references: followup-to: comp.lang.eiffel,comp.lang.ada,comp.object organization: Organon Motives, Inc. newsgroups: comp.lang.eiffel,comp.lang.ada,comp.object Date: 1996-05-02T00:00:00+00:00 List-Id: In article <4m6kcg$sa6@gaia.ns.utk.edu> mbk@caffeine.engr.utk.edu (Matt Kennel) writes: > : jsa@organon.com wrote 19.04.96 on Re: Real OO: > > : > Simply this: Classwide operations can be defined anywhere by anyone. > : > They do not have to be defined along with the primitive types in > : > their packages. > > And how is this different from Eiffel? > > class A is > > end > > class B is > > end > > class C is > > end > > > class ANYWHERE_BY_ANYONE is > > this_is_what_ada_calls_a_classwide_operation(a:A,b:B,c:C) is ... end; > > end Already covered this but you actually show what's different. You need to play some games 1. Create your extraneous/contrived class with the operation(s) 2. It can be (as you point out) used anywhere, even if that is not what you want (so you might start playing selective export games and getting even messier) 3. You have to use inheritance to use the thing (not exactly appropriate for most cases of the sort I was describing). There are probably others... /Jon -- Jon Anthony Organon Motives, Inc. 1 Williston Road, Suite 4 Belmont, MA 02178 617.484.3383 jsa@organon.com