I dislike MSVCC. The port of GNU MingW+MSYS for Win32 is an awesome compiler, which can be extended to compile C++, Java, and Assembly (it comes with C compiling). I really like it.
One thing I dislike about C++ (mostly due to learning VB6 first), is that I can't use a globally accessible variable (IE: class main has a value, but I need to pass an instance of main to every other class so that I can access 1 variable). It's very annoying, but I've gotten somewhat used to it.
You're talking about a "static" variable.
class A
{
public:
static int a = 3;
};
...........
A.a = 5; // no instance of A! Just the class itself!
I don't think that'll compile, since I seem to remember that C++ has something stupid about static variables, but yeah.
Anyway, is the book on C or C++?
C is invaluable to learn. Once you know C, any other language is fairly easy. If you ever plan to do anything low-level, like hardware programming or even game hacks, you're going to be doing it in C. C has been around for 25 years, and isn't going anywhere.
I love how C code looks. It's nice code, if you know it well you can do anything. You can even do object oriented-style programming in C, and I like doing it in C a lot better than C++.
C++, I don't like. It's shambled together on top of C, and makes thing more complicated. In trying to maintain their reverse compatibility with C, they added a lot of kludges and workarounds that make code really ugly (like static class variables have to be initialized outside of the class, or something like that). C++ code tends to be much more mangled and ugly than the equivalent C code. I very much dislike C++. If I intend to do something object-oriented, I use Java. Java wasn't trying to maintain reverse compatibility, so it's a lot nicer.
It's like comparing IA-64 assembly to HP-Tru64. HP-Tru64 was designed and built to be 64-bit. So it's faster and cleaner. IA-64, on the other hand, maintains reverse compatibility with 32-bit and 16-bit, and, as such, is pretty ugly.