#terminology ## Definition A class with one, or more, [[abstract method|abstract methods]]. An abstract class cannot be implemented, and so it used as a [[base class]]. ## Example Since `get_name` is an [[abstract method]], `Nameable` is an abstract class: ```cpp class Nameable { public: // prints the object to cout virtual string get_name() const = 0; // virtual destructor virtual ~Nameable() { } }; // class Nameable ```