I disagree that C is inherently easier to understand than C++.
There are many ways to use C++ without overloading operators and
I know quite a few (including myself) that use almost every feature
in the language EXCEPT overloaded ops except in the most trivial
cases. I think String assignment operators are very logical, however
I dont think overloading stuff like -> is wise in a large project.
> I have had to port a large C++ project (printout was about a foot thick) to a
> different platform with many design changes and it wasn't at all fun. I
> resorted to looking at the disassembly of functions in a debugger to find out
> what the program was actually doing and get a clue as to where to look for
> problems. This is of course only one example (and a DOS game no less,
> "FPS:Football '94") but I think many people don't understand what can happen
> to a "clean" C++ design when people in the real world have to make things
That depends on your conception of a clean C++ design. As I've said,
many experience C++ designers have gotten over the novelty of overloading
an operator at every chance.
It is possible to do a 1 to 1 mapping of any C project to C++ using
correct inlining and obtain an OOP design without the full penalty
of things such as virtual functions. Polymorphism is nice but I
disagree with the 'experts' which say it is 1 of the required points
for true Object Orientation (Booch if I'm not mistaken)
I think that is 1 point I like about Java, it is much cleaner
in several areas, but is still a subset of C++. The problem is, some
programmers need the language to restrict them and many of those
are ones who move to Modula-2 and Java, deserting C++ because of
complexity that no-one forced them to use.
-Melvin S.