title: Why do we need abstract classes in C++?
body: <p>I've just learned about polymorphism in my OOP Class and I'm having a hard time understanding how abstract base classes are useful.</p>
  
  <p>What is the purpose of an abstract class? What does defining an abstract base class provide that isn't provided by creating each necessary function in each actual class?</p>