Xref: utzoo comp.lang.misc:4513 comp.lang.c:27039 Path: utzoo!attcan!uunet!samsung!sol.ctr.columbia.edu!emory!hubcap!billwolf%hazel.cs.clemson.edu From: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) Newsgroups: comp.lang.misc,comp.lang.c Subject: Re: Relationship between C and C++ Message-ID: <8432@hubcap.clemson.edu> Date: 19 Mar 90 15:53:26 GMT References: Sender: news@hubcap.clemson.edu Reply-To: billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu Lines: 33 Followups-To: comp.lang.misc From peter@ficc.uu.net (Peter da Silva): > Classic Ada is no more Ada than C++ is C. Then perhaps we should ask, "Exactly what IS the relationship between C++ and C?" Let's see what recently-quoted author Bertrand Meyer (author of _Object-Oriented Software Construction_) has to say: ...Quoting from Dr. Bjarne Stroustrup's ``The C++ Programming Language'' (Addison-Wesley, 1986), which seems to be the major reference on C++, page 22, lines 13-14: ``A C++ program typically consists of many source files, each containing a sequence of declarations of types, functions, variables, and constants''. This is very far from the object-oriented model of software decomposition. ...One of my major objections to C++ stems from what that language has rather than what it has not. Because C++ retains almost total compatibility with C, it keeps all its low-level and dangerous features. The design of C dates back to the late sixties and is obsolete by modern software engineering standards. Compatibility with C means that in C++ you still have pointers, type casts, pointer arithmetic, function pointers, malloc, free, bizarre operator precedence (the famous asterisk/parenthesis bugs), weak type checking and so on. I strongly disagree with this approach if the goal is to obtain software quality. Take pointer arithmetic, for example. I would contend that you can have quality software, or you can have pointer arithmetic; but you cannot have both... -- Bertrand Meyer bertrand@eiffel.com 4 Jun 89 23:48:27 GMT