C Tutorial - Working with C++
Why is C's successor called "C plus-plus"? One rationale is that C++ is a "better C" (the first "plus") and adds object-oriented programming (OOP) features (the second "plus"). But C++ brings with these beneficial additions some devilish problems. Maybe they should have called it "C plus-plus-plus" or "C plus-and-minus." Whatever you call it, C++ requires careful attention to reap its advantages and avoid its problems.
Starting on the Right Foot
Right off the bat, C++ simplifies comments and avoids the danger of the "runaway comments" I described in Chapter 3. If you use // for comments everywhere but in macro definitions, you won't have to worry about where the comment ends - it's always at the end of the same source line. And look how clean comments appear:
strcpy( title, name ); // Build title
Unfortunately, some C++ compilers' preprocessors may not strip comments from macro definitions, so the following sequence can create problems:
#define MAX_FILES 10 // Limit to open files
...
if ( file_cnt < MAX_FILES ) {
...
}
The problem arises if the preprocessor stores the replacement text for MAX_FILES as "10 // Limit to open files". The expanded if statement then becomes
if (file_cnt < 10 // Limit to open files ) {
...
}
which won't compile.