C++ | Virtual Functions | Question 5

using namespace std;

class Base
    virtual void show() = 0;

int main(void)
    Base b;
    Base *bp;
    return 0;

(A) There are compiler errors in lines “Base b;” and “Base bp;”
(B) There is compiler error in line “Base b;”
(C) There is compiler error in line “Base bp;”
(D) No compiler Error

Answer: (B)

Explanation: Since Base has a pure virtual function, it becomes an abstract class and an instance of it cannot be created.

So there is an error in line “Base b”.

Note that there is no error in line “Base *bp;”. We can have pointers or references of abstract classes.

Quiz of this Question

GATE CS Corner    Company Wise Coding Practice

Recommended Posts:

0 Average Difficulty : 0/5.0
No votes yet.