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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: jdege@jdege.visi.com (Jeffrey C. Dege) Subject: Re: Module size (was Re: Software landmines) Date: 1998/09/05 Message-ID: #1/1 X-Deja-AN: 388169291 References: <6snlos$bh6$1@hirame.wwa.com> <904912650snz@nezumi.demon.co.uk> <35EFFB78.21BBBED6@ksc.nasa.gov> <6spfvf$nun$1@hirame.wwa.com> <6spojo$8ir$1@uuneo.neosoft.com> <35f58f68.94311132@news.erols.com> <35F0BC05.61919244@s054.aone.net.au> <6srhl8$spv$1@hirame.wwa.com> X-Complaints-To: abuse@visi.com X-Trace: ptah.visi.com 905009366 209.98.6.59 (Sat, 05 Sep 1998 10:29:26 CDT) NNTP-Posting-Date: Sat, 05 Sep 1998 10:29:26 CDT Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-05T00:00:00+00:00 List-Id: On Sat, 5 Sep 1998 09:14:30 -0500, Robert Martin wrote: > >Loryn Jenkins wrote in message <35F0BC05.61919244@s054.aone.net.au>... >>> Unfortunately in C++ even if the interface of 2 classes is the same >>> they are not polymorphically substitutable for each other unless they >>> both inherit from a common class. >> >>This is interesting that you say "unfortunately". If 2 classes *did* >>have the same interface, why wouldn't you make them both inherit from an >>abstract class that defines the interface? > >Here are two classes that appear to have the same interface. But that is >just appearance. In reality they have completely different interfaces. In >Smalltalk, there is a chance that you could send a Pump object to a window, >and that the window would try to Draw it. In C++ that is not an option. > >There are costs and benefits to the static typing of C++. It affords a >certainl level of protection at the cost of a certain level of flexibility. >But static typing is certainly not "unfortunate". There are times when you want to write code that works with objects of a specified type, and there are times when you want to write code that will work with any object that supports the required method. In Smalltalk, you get the second by default, and if you want the first you do explicit run-time type checking. In C++, you get the first with inheritence, and the second with templates. And in both cases you get compile-time checking. There are things about Smalltalk I really like, but I prefer C++'s approach to class typing. -- We can found no scientific discipline, nor a healthy profession on the technical mistakes of the Department of Defense and IBM. -- Edsger Dijkstra