One line touted in discussions about what good C++ looks like is "you only pay for what you use". I have heard this used as justification to not use inheritance/polymorphism constructs and the idea of coding to an interface, because these constructs will require use of a v-table at run time for something known at compile time.
Is this true? Does basic OOP break a major tenet of C++ (specifically does the idea of "coding to interfaces" break the idea of "you only pay for what you use"?