Question:
Can I instantiate an abstract class?
Answer:
No, you cannot instantiate an abstract class. However, you can declare a pointer or a reference to it:
class Abs{public: virtual void Perform() = 0; //pure virtual};class Derived: public Abs{public:void Perform() {/*..*/}}void func(Abs& derived); //reference to abstractint main(){ Abs * p = new Derived; //pointer to abstract func(*p);}