A class with a pure virtual function will be an abstract class.

1. we cannot have constructor for abstract class because we cannot instantiate an abstract class;

2. can we have non pure virtual methods inside an abstract class?

3. can we have member variables inside an abstract class which can be initialized by its subclass? if yes, how to initialize them?

If C++ abstract class is the same as Java Interface, no member variables are allowed, only constants and abstract methods are allowed.