In C++ an Abstract Class is the one, which defines an interface, but does not necessarily provide implementation for all its member functions. An abstract class is meant to be used as the base class from which other classes are derived. The derived class is expected to provide implementations for the member functions that are not implemented in the base class. A derived class that implements all the missing functionality is called a Concrete Class. A concrete class derives from its abstract class.