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!news2.google.com!news.glorb.com!newsfeed2.telusplanet.net!newsfeed.telus.net!edtnps90.POSTED!023a3d7c!not-for-mail Sender: blaak@METROID Newsgroups: comp.lang.ada Subject: Re: Inherited Methods and such References: <1190239986.762473.204290@k79g2000hse.googlegroups.com> <1rw45b3rmvmcr$.1df4wst5oknbl$.dlg@40tude.net> <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> From: Ray Blaak Message-ID: Organization: The Transcend User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 26 Sep 2007 22:20:15 GMT NNTP-Posting-Host: 208.66.252.228 X-Trace: edtnps90 1190845215 208.66.252.228 (Wed, 26 Sep 2007 16:20:15 MDT) NNTP-Posting-Date: Wed, 26 Sep 2007 16:20:15 MDT Xref: g2news2.google.com comp.lang.ada:2151 Date: 2007-09-26T22:20:15+00:00 List-Id: Maciej Sobczak writes: > My claim in this lengthy and philosophical discussion is that C++ > provides a complete solution which can be shortly described like this: > the final type is not established from the very beginning, but is > progressively moving along the inheritance chain as the subsequent > constructors of base types complete their work. Thank's to this, > primitive operations never dispatch further than what can be > statically reasoned about. Java has this problem. The rule is to not call overridden functions in the constructor, since they tend to assume the object is completely constructed. It is not the type that is the problem. It is calling subclassed methods on an instance that is not completely constructed yet. You don't want to progressively change the type either, since that can also lead to unexpected changes in behaviour. -- Cheers, The Rhythm is around me, The Rhythm has control. Ray Blaak The Rhythm is inside me, rAYblaaK@STRIPCAPStelus.net The Rhythm has my soul.