So, at my time on the beach, I inhaled Lippman’s “C++ Primer (4th Edition)”, attempting to get back up-to-speed on a language I left 6 years ago. At that time, I knew enough to be dangerous, but I didn’t know enough programming theory to “get” half the stuff. My instruction on C++ had been “C using iostream”, and some cursory stuff on classes and templates.
Anyway, I’m both impressed and horrified at C++. After coming through its ISO standardization, the language picked up some heavy-duty container and algorithm libraries, and they’re well thought-out and consistent. However, C++ makes some design decisions that are almost contradictory, and the programmer pays the price for it. It’s a compiled, strongly-typed language that allows multiple inheritance and operator overloading. Put a different way: It’s a language that lets you prove how smart you think you are, while shooting yourself in the foot, ankle, leg…you get the idea.