[comp.lang.c++] Programming Pardigms

jss@hector.UUCP (Jerry Schwarz) (02/28/88)

In article <23134@ucbvax.BERKELEY.EDU> serge@berkeley.edu (serge) writes:

>	This issue (and others) could be addressed if the method
>definition/invocation syntax was
>
>		method(x, y, z ...);
>
>instead of
>		x.method(y, z ...);
>

It already exists in C++.  It's called overloaded functions.  It is
one of the strengths of C++ that it supports other programming
paradigms  than "objected oriented".  The principles which determine
whether a particular operation ought to be a member or a global
function have not been well articulated yet.  As people gather
experience with C++ I hope a consensus will emerege.

What really is on my mind is that I have gotten frustrated by the
assumption that people seem to make frequently in this group that C++
is "Object Oriented C".  C++ does have inheritance (which is what
distinguishes "Object Oriented" from other approaches) but it also
has features such as overloading, casting operators
constructors/destructors that support other paradigms.  C++ without
inheritance would certainly be less useful, but it would still be a
significant extension of C.

Jerry Schwarz

jima@hplsla.HP.COM ( Jim Adcock) (03/01/88)

| What really is on my mind is that I have gotten frustrated by the
| assumption that people seem to make frequently in this group that C++
| is "Object Oriented C".  C++ does have inheritance (which is what
| distinguishes "Object Oriented" from other approaches) but it also
| has features such as overloading, casting operators
| constructors/destructors that support other paradigms.  C++ without
| inheritance would certainly be less useful, but it would still be a
| significant extension of C.

Well, I don't know.  It seems like half the people who haven't programmed
in C++ claim it ISN'T Object-Oriented because of ABC, and the other half
who haven't programmed in C++ claim it IS Object-Oriented because of XYZ, 
so MAYBE C++ is hitting the right balance :-)

Too bad these people never seem to get around to sitting down and TRYING c++.

I know a lot of people who spent the last couple years writing code in "pure"
Objective-C, and probably less than 5% of the code is REALLY "Object-Oriented."

So it seems to me the biggest c++ wins, in order are:

1) type checking
2) modular design
3) inheritance
4) dynamic binding
5) operator overloading
6) etc.
....