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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!solnet.ch!solnet.ch!newsfeed.freenet.de!151.189.20.20.MISMATCH!newsfeed.arcor.de!news.arcor.de!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Teaching new tricks to an old dog (C++ -->Ada) Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng User-Agent: 40tude_Dialog/2.0.14.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110052142.832650@athnrd02> <1110284070.410136.205090@o13g2000cwo.googlegroups.com> <395uqaF5rhu2mU1@individual.net> <1110329098.642196@athnrd02> <1110361741.551255@athnrd02> <422edaec$0$26554$9b4e6d93@newsread4.arcor-online.net> <1111464133.508323@athnrd02> <1111508368.393411.6450@z14g2000cwz.googlegroups.com> <1111522653.164049@athnrd02> <9Gi0e.815$FN4.52@newssvr21.news.prodigy.com> <25875118.D6KecKHI6J@linux1.krischik.com> <1gaaa12mhwkch$.13718sqwfpcq0.dlg@40tude.net> <1159231.e8lUUTcn41@linux1.krischik.com> <1t9ck682jq6m0$.1wtb2w4h2yu4s.dlg@40tude.net> <1134594.trGOGDrpi2@linux1.krischik.com> Date: Fri, 25 Mar 2005 12:01:58 +0100 Message-ID: NNTP-Posting-Date: 25 Mar 2005 12:01:53 MET NNTP-Posting-Host: d7353ee0.newsread2.arcor-online.net X-Trace: DXC=^kC\PC4W]aMVg>C^g8i1FIQ5U85hF6f;DjW\KbG]kaMH]kI_X=5KeaFJa1TI\ On Fri, 25 Mar 2005 10:50:46 +0100, Martin Krischik wrote: > Dmitry A. Kazakov wrote: > >> On Thu, 24 Mar 2005 14:38:39 +0100, Martin Krischik wrote: >> >>> Dmitry A. Kazakov wrote: >>> >>>> On Thu, 24 Mar 2005 11:47:10 +0100, Martin Krischik wrote: >>>> >>>>> Hyman Rosen wrote: >>>>> >>>>>> adaworks@sbcglobal.net wrote: >>>>>>> I wish Ada had a good model of multiple inheritance. >>>>>> > I don't mean the somewhat haphazard model of C++ >>>>>> >>>>>> What's wrong with C++'s model? >>>>> >>>>> As allways: the default behaviour. Default is static inheritance. >>>> >>>> As it will be with interfaces in Ada 2005, I suppose... >>> >>> It make no difference with interfaces as interfaces hold no data. >> >> Of course it does. Diamond diagram is as valid for interfaces as for >> implementations (data). If you allow interfaces to be derived from other >> interfaces (I don't know if Ada 2005 will), then: >> >> C -> A (both are interfaces) >> C -> B (both are interfaces) >> >> Let X implements both A and B. Now: A's C of X = B's C of X? > > Where is the problem? There is no data in C, C only consists of its tag (or > virtual function table). But the tag (or virtual function table) is a > singelton and A's C and B's C are both the same. That's the point, whether they be same or not is to be defined solely by X, not per language design. Forget about data, it is irrelevant. Primitive operations are data and data are primitive operations. If C has abstract Foo, then may/shall X implement X.A.C.Foo and X.B.C.Foo differently? Is it the same primitive operation of X or is it two different operations? Or else, will Foo's dispatching table split into two branches or not? The answer is: it depends on the design. Because both variants are needed. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de