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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,e0a59694a441eb7b X-Google-Thread: 103376,e0a59694a441eb7b X-Google-Thread: fac41,e0a59694a441eb7b X-Google-Thread: 1108a1,e0a59694a441eb7b X-Google-Attributes: gid109fba,gid103376,gidfac41,gid1108a1,public X-Google-ArrivalTime: 2004-04-24 12:58:53 PST Path: archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail From: Anthony Weissenberger Newsgroups: comp.lang.c++,comp.lang.ada,comp.lang.eiffel,comp.object Subject: Re: OOP Language for OS Development Date: Sat, 24 Apr 2004 14:58:02 -0500 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <108lhm1k8hmtf1d@corp.supernews.com> User-Agent: Mozilla Thunderbird 0.5 (Windows/20040207) X-Accept-Language: en-us, en MIME-Version: 1.0 References: <95db0572.0404142153.431fd058@posting.google.com> <566e2bfb.0404181753.2844342f@posting.google.com> <4088D574.2020503@tele2.fr> <1082732696.152155@master.nyc.kbcfp.com> <1082759585.818002@master.nyc.kbcfp.com> In-Reply-To: <1082759585.818002@master.nyc.kbcfp.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@supernews.com Xref: archiver1.google.com comp.lang.c++:31451 comp.lang.ada:7453 comp.lang.eiffel:739 comp.object:11104 Date: 2004-04-24T14:58:02-05:00 List-Id: Hyman Rosen wrote: > In Eiffel, Derived::Foo(Derived) overrides Base::Foo(Base). > That means that if you have a Base object, and you call > some_base_reference.Foo(some_other_base_reference), the call > looks correct, but if some_base_reference is really a Derived > and some_other_base_reference is not a Derived, you have an > error. Your first statement is incorrect. You can decide whether it's Derived::Foo (Derived) or Derived::Foo (Base). If you do implement the former, you will indeed get an error. If you implement the latter, no errors are generated. Could you provide a scenario where you would need to have both the base and derived class existing in the program, and you would need to implement Derived::Foo (Derived) overriding Base::Foo (Base)? > > It's a horrible misfeature, but its proponents cling to it > tenaciously, and they have spent years trying to figure out > workarounds so that the errors can be caught. Those are some interesting allegations. Do you have any references which support your claims?