I am still surprised that C++ is still the dominant language. From my point of view, I think the reason why people still use C++ is because it's object oriented and a lot of C++ code has already been made so far, so it requires maintenance. I think that C# will eventually replace C++ because at least it has a garbage collector which makes OOP less a pain.
I followed a few years ago a new class of plain C and I fall in love again with the language. All my hatred of C was in fact due to C++. Yes it is a more dangerous language because you have complete control on the the system. And you need such control for writing low level code (Drivers, OS, etc). Doing the same in C++ is possible but very risky.
An interesting quote that I found on the net was that: "C++ makes it harder to shoot yourself in the foot than with C, but when you do shoot yourself in the foot with C++, it's the whole leg that blows up"