C++ is absolutely far more than "C with classes" or "C with OOP". First, OOP is more technique. As previously stated; a design paradigm. C++ is not actually an OOPL. It does, however, have features which help support object-oriented design. Some of these features, which are contained within C++ and not C, include: streams, operator overloading, function overloading, templates, improved scope control(private, public, etc.), virtual functions, inheritance, etc. There is, indeed, a HUGE difference between C & C++. In learning 1 language, you learn part of the syntax of the other. Fortunate for those who begin with C, you are more proficient in C++ with a knowledge of C than you would be in C with knowledge of C++. Example: if you know how to use a map<char*, char*> in C++, you would have a difficult time reproducing such a thing in C whilst just learning. Conversely, if you know how to C, a hashtable isn't a horrible thing to conceive and in learning C++, a map is just an added tool for your arsenal.