"...Otherwise, the class has to have some data associated with it. Are we sure we want to link Foo both to the interface of Bar and to its in memory layout? No, you are not. Don't do it, use composition instead. [More Effective C++, 33 Make non-leaf classes abstract]" Sigh. Dude either didn't read the book, or didn't think about what it's saying; he's just quoting the chapter headings and drawing a silly conclusion.…
With C++ you have this huge dearth of people who know enough about the language to convince someone else of it, then you get them on your project and they blow stuff up by doing it subtly wrong.
C++ has uses, but it's the sulfuric acid of programming languages: you have to have good personnel control and fire those who screw around outside the boundaries of the right style. A programming group with one guy programming like C with classes and another guy programming like it's Ocaml without garbage collection, and you're in for a mighty piece of hell.