Re: What so wrong about teaching "C/C++"?
On 2009-12-07, Vladimir Jovic <vladaspams@gmail.com> wrote:
Kaz Kylheku wrote:
Any program I can write in C, I can write in this dialect also, without any
difficulty, and I get rewarded with portability to C++ compilers, which I can
then, in turn, use as a development tool for that code (and not merely a
porting target) to obtain better compile and link time safety. You know, maybe
we should come up with a standard-like document which codifies the portable C
dialect that is understood by C and C++ compiler. This deserves to be
documented as a language in its own right.
Few months ago I had to include a C header into the c++ source file. I
Actually, you maybe had to do this more recently than you think. Many of the
headers in your toolchain can be used with either the C and C++ compiler.
Do you never include platform headers in your code, only the C++ standard
things like <algorithm>, <map> or <iostream>?
couldn't because there was a structure with member named "class". This
is just one example how the C and C++ differs.
See? You would not have had this problem if the programmer who prepared this
header file had been aware that he needs to work in C and C++ simultaneously.
Also, the way of thinking differs in these two languages. One is
procedural, other is OO oriented.
That's obviously not true if one is using the procedural subset of C++ which is
equivalent to C.
The OOP style in most C++ programs is procedural; C++ class member functions
are procedures, mostfrequently written in an imperative style: they modify
objects by assignment and contain iteration and selection type control flows.
You can reason about C++ OOP code at a very low level. You can nearly
visualize what the C would look like if you had a C++ compiler that worked by
compiling to C. Moreover, taking this view can actually help you to understand
and debug the code.