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,dbcfe2b0a74da57e X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder2-2.proxad.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Inherited Methods and such Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.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: <1190239986.762473.204290@k79g2000hse.googlegroups.com> <11m13st1f92kf$.m8s6y8mc8ebk.dlg@40tude.net> <1190321119.206313.65290@57g2000hsv.googlegroups.com> <1190408526.100291.265040@50g2000hsm.googlegroups.com> <9ukf2wtqjs0q$.iuijmal4x56b$.dlg@40tude.net> <1190497995.498679.119190@19g2000hsx.googlegroups.com> <1mw3qju08q8uj.sgzht7ld9ydc$.dlg@40tude.net> <1190579805.451187.71140@d55g2000hsg.googlegroups.com> <1i8ksr774bjbj.vpmnx3c0i9qz.dlg@40tude.net> <1190646125.024072.310020@19g2000hsx.googlegroups.com> <1r9s9v6pcjifl.vp4ktk0unpd1.dlg@40tude.net> <1190753631.240548.101820@19g2000hsx.googlegroups.com> <1190843408.713838.128690@g4g2000hsf.googlegroups.com> <1tovavprv3hg2$.w3sgselxd5ob$.dlg@40tude.net> <7p6gc1s9imfa$.kmvwf5zyf8e9.dlg@40tude.net> Date: Sat, 29 Sep 2007 22:37:18 +0200 Message-ID: <1gnt0zdlhtvd5$.gzpbn547ntsy$.dlg@40tude.net> NNTP-Posting-Date: 29 Sep 2007 22:37:19 CEST NNTP-Posting-Host: 6bc9ed96.newsspool4.arcor-online.net X-Trace: DXC=UJ;:Lde_8IlEB;5>eE0T7m4IUK On Fri, 28 Sep 2007 17:53:47 -0500, Randy Brukardt wrote: > "Dmitry A. Kazakov" wrote in message > news:7p6gc1s9imfa$.kmvwf5zyf8e9.dlg@40tude.net... > ... >>> This doesn't begin to make sense. The object hasn't even found out what it's >>> border it (because it hasn't been constructed), and you want to ask what it >>> is? > >>Surely. The base type does not know what border it has. It only knows that >>there is one and it wants to ask for. This is nothing special, it is an >>abstract primitive operation. > > But there is no reason for the base window to do anything with the border, > because it knows nothing about the implementation. Uhm, but this what ADT is about. The client knows nothing about the implementation. The abstract window might ask its implementation for concrete border thickness, for example. >>> Dispatching in a constructor is a bug, period. >> >> No, that depends on what is constructor and what is being constructed. >> >> The point is that it is perfectly reasonable and consistent to dispatch at >> the end of construction of T'Class, It is wrong to dispatch before that. > > It makes sense to dispatch *after* the end of the construction, not at any > point during it. Any operation for which this makes sense cannot have > anything to do with construction. Mixing such operations up with > constructors is just confusing, and certainly bad design. The point is that it is construction of T'Class. Because tagged types in Ada share the implementation with their classes, a construction of, would also construct the class. If classes were also allowed for non-tagged types, the constructor of T'Class would be called upon each substitution of T for T'Class. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de