When there is no need to create an object or can't create an object from the class definition known as abstract class. This is done only when abstract class is derived from the abstract class. If a class contains at least one pure virtual function, class is considered as an abstract class.
For example: A company developed an abstract class name "bank" and it has a pure virtual function "saving rate" since rate can't be defined unless there is a specific branch object is created. When a bank object such as "sbi", "cbi" , "hdfc" is created and classes of these objects inherited "bank" class and defined "saving rate" method as per their policy.