Error: cannot declare variable ‘c’ to be of abstract type ‘circle’ virtual void draw() const { cout<< "Circle"<< endl; } You should add the keyword const like in the example above.