Inheritance provides specialization in the run-time.
Templates provide specialization in the compile-time.
Containers and algorithms often operate over the various types in the same way and templates allow separating their generic code from the type-dependent code.
Templates allow writing generic (type-independent) code for containers and algorithms. Their specializations (for a given types - template parameters) are created during compile-time.
Virtual function achieves dynamic polymorphism at runtime while template achieves static polymorphism at compile time.
Templates => compile time polymorphism
Abstract classes => run-time polymorphism
Templates provide specialization in the compile-time.
Containers and algorithms often operate over the various types in the same way and templates allow separating their generic code from the type-dependent code.
Templates allow writing generic (type-independent) code for containers and algorithms. Their specializations (for a given types - template parameters) are created during compile-time.
Virtual function achieves dynamic polymorphism at runtime while template achieves static polymorphism at compile time.
Templates => compile time polymorphism
Abstract classes => run-time polymorphism
No comments:
Post a Comment