Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!uunet!mcvax!cernvax!ethz!marti From: marti@ethz.UUCP (Robert Marti) Newsgroups: comp.lang.c++ Subject: Re: C++ and other OOP Languages Keywords: C++, OOPS Message-ID: <823@ethz.UUCP> Date: 20 Apr 89 12:21:27 GMT Organization: ETH Zuerich Lines: 26 Some previous articles discussed the "object-orientedness" (what a word!) of C++, Objective C and various other languages. Let me add me 2 cents worth, even though I usually regret posting my opinions to USENET afterwards ... :-) Today, most people can probably live with the following "definiton": (We'll soon hear from those who can't :-) A language is OO if 1) it supports data encapsulation (information hiding, abstract data types), 2) it supports inheritance (subclassing, extensible record types, ... ) and 3) it supports determination of the procedure body to be executed at the time of the actual procedure call (message passing, virtual functions). Using this definiton, C++, Objective-C, Smalltalk, Lisp+CLOS, Eiffel, Modula-3, and Object-Pascal are all OO, since they fulfill all of the above criteria. Oberon only supports (1) and (2) directly, and is not fully OO as a result. Modula-2 and Ada (TM of somebody or other) only support (1) and are definitely not OO. -- Robert Marti Phone: +41 1 256 52 36 Institut fur Informationssysteme ETH-Zentrum CSNET/ARPA: marti%inf.ethz.ch@relay.cs.net CH-8092 Zurich, Switzerland UUCP: ...uunet!mcvax!ethz!marti