title: Template class vs Abstract class
body: <p>So I started looking back at some of my OOP courses and I found this question: What is the difference between a template class and an abstract class? When should one be used and not the other?</p>
  
  <p>I know that template classes are instantiated the same way as the functions. A copy is created with the template parameters replaced with actual data types.
  Abstract classes have pure virtual functions and cannot be instantiated. Derived classes must define the virtual functions.</p>