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.9 required=5.0 tests=BAYES_00 autolearn=ham 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!news3.google.com!proxad.net!feeder1-2.proxad.net!news.mixmin.net!news.motzarella.org!motzarella.org!nuzba.szn.dk!news.jacob-sparre.dk!pnx.dk!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Inherited Methods and such Date: Fri, 28 Sep 2007 17:53:47 -0500 Organization: Jacob's private Usenet server Message-ID: References: <1190239986.762473.204290@k79g2000hse.googlegroups.com> <1190296353.624737.150940@y42g2000hsy.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> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: jacob-sparre.dk 1191019855 15750 69.95.181.76 (28 Sep 2007 22:50:55 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 28 Sep 2007 22:50:55 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1807 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1896 Xref: g2news2.google.com comp.lang.ada:2209 Date: 2007-09-28T17:53:47-05:00 List-Id: "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. That information surely can have nothing to do with the construction of the base window (otherwise you have a serious data coupling problem), so there is no reason for the window to ask about it during construction. > > 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. > Further, Ada.Finalization.Initialize already *dispatches* right from there. > It seemingly made sense for the designers of Ada 95. Why Get_Border_Type > does not? Because it was a hack to provide a hook. Just because it is in the language doesn't make it good design! The whole of Ada.Finalization.Controlled is a hack - the dispatching is just a cover for a lack of will to include the proper magic for hooks. And because it is a hack, you can starting asking questions that are inappropriate. I think it is best to ignore Initialize as much as possible, and for Ada 2007, use constructor functions instead. Randy.