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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,436e4ce138981b82 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-03-11 07:40:54 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.uchicago.edu!news-xfer.newsread.com!nntp.abs.net!ash.uu.net!spool.news.uu.net!not-for-mail Date: Thu, 11 Mar 2004 10:40:02 -0500 From: Hyman Rosen User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: abstract sub programs overriding References: <1078776213.376775@master.nyc.kbcfp.com> <1078839257.157439@master.nyc.kbcfp.com> <5cmr40t76va200betf07b7bd6er05ltto9@4ax.com> <1078845298.702789@master.nyc.kbcfp.com> <0ipr40thtf86b520a0qdi003aj87gtuhd4@4ax.com> <1078849973.701176@master.nyc.kbcfp.com> <1078924150.268074@master.nyc.kbcfp.com> <1079014276.527406@master.nyc.kbcfp.com> <67u0505uu3gfmlt8p28e9jkaco0nljquut@4ax.com> In-Reply-To: <67u0505uu3gfmlt8p28e9jkaco0nljquut@4ax.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Message-ID: <1079019616.621636@master.nyc.kbcfp.com> Cache-Post-Path: master.nyc.kbcfp.com!unknown@aphelion.nyc.kbcfp.com X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1079019616 9344 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:6242 Date: 2004-03-11T10:40:02-05:00 List-Id: Dmitry A. Kazakov wrote: > No, this is just a contract model. Between what parties? > These are different things - to have a bad design or to have a good > one, but poorly coded one. You want your language to help you catch the poor coding. That's why Ada catches bounds errors, for example. > You cannot do it right if the language does not support object > construction properly. The concept of two-phase initialization is a backward step in OO. The paradigm of C++'s *tor mechanism is that other methods don't ever need object validity checks, because constructors make the object kosher. > I tried to show that the source of the problem is that to construct T > /= to construct T'Class. This makes no sense. A general object, in the OO world, may have each derived class require services from its base class, even during object construction. Bases may need to invoke services from derived classes, such as in the template method design pattern. When the latter is invoked from the former, problems arise. I have no idea what this has to do with being classwide or not.