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!news1.google.com!news.glorb.com!newscon02.news.prodigy.net!prodigy.net!newsfeed-00.mathworks.com!nntp.TheWorld.com!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: Inherited Methods and such Date: Sat, 29 Sep 2007 19:42:41 -0400 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: <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> <1191012272.457766.273330@57g2000hsv.googlegroups.com> NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: pcls6.std.com 1191109361 4565 192.74.137.71 (29 Sep 2007 23:42:41 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Sat, 29 Sep 2007 23:42:41 +0000 (UTC) User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (irix) Cancel-Lock: sha1:+pvFwV9iP6+stMrtHZcNECgY3yk= Xref: g2news2.google.com comp.lang.ada:2230 Date: 2007-09-29T19:42:41-04:00 List-Id: Maciej Sobczak writes: > On 28 Wrz, 21:42, Robert A Duff wrote: > >> Here's an example. What do you think? > > Perfect! I wasn't aware of the possibility to use return to achieve > this "progressive" construction process. > I knew this form of return, but not the gory details of how tags are > assigned. > >> Do you revise your opinion that >> Ada doesn't properly support constructors? > > Yes, this example is convincing. Good to hear. :-) > How would you recommend using this pattern with controlled types? > > I might need controlled for the finalization part - do you recommend > ignoring the Initialize operation in this case? Not sure. Probably ignorable in most cases. Note that Initialize defers abort, which might be interesting in some programs. As for finalization, I'm not sure it's exactly the reverse of initialization. For initialization, you're creating something out of whole cloth ("raw bits"). But for finalization, you're not turning anything into raw bits, and you can program defensively (e.g. make sure Finalize works when called twice on the same object). - Bob