Nobody Understands C++: Part 10: C++ Is Not an Object Oriented Programming Language
In the context of the rest of the Nobody Understands C++ series, I feel like this one is redundant. But it seems like it needs to be said.
Specifically, C++ supports:
Making the most of C++ means effectively utilizing each of these paradigms appropriately. Indeed, the boost::function library (part of the upcoming C++0x standard) must utilize procedural, object oriented and generic programming techniques to make the implementation possible. And it is through boost::function that the primary, easiest method of functional programming is possible in C++.
Understanding the strengths and weaknesses of these individual paradigms and their use in C++ will make you a better programming in the other languages that you use.