Item 41: Understand Implicit Interfaces and Compile-Time Polymorphism
Template: Implicit interface (whatever is a valid expression) and compile-time polymorphism (template instantiation and function overloading resolution).
On the other hand, OOP: Explicit interface (function signature) and runtime polymorphism (virtual function)