My five moments of clarity with C++ (after link) –
1. When I realized that not only was multiple inheritance buggy as heck, it was also a bad idea. (This was with CFront in 1988. It was bad).
2. When I realized that a lot of people use inheritance to save keystrokes, and abstraction for procrastinating about design.
3. When I realized that Koenig lookup was the kind of clever hack that one should be praised, then stuffed and mounted for.
4. When I realized that 99% of C++ programming was about memory management (the other 1% is fooling the type system into letting you do memory management).
5. When I realized that there are pieces of the language that I will never, ever use. (I think Ive used every corner of C, with the possible exception of trigraphs, unless you count by accident, what a stupid feature as using a feature).