Abstract Class: A class containing at least one pure virtual function. Objects of an abstract class cannot be created. Pure Virtual Function: A virtual function declared using = 0 that must be overridden by derived classes
In C++, you can’t create an object of an abstract class because it has at least one pure virtual function—a function declared with = 0.
```cpp class Shape { public: virtual void draw() = 0; // pure virtual function };
Shape s; // Error: Shape is abstract ```
Instead, create an object of a derived class that implements every pure virtual function:
```cpp class Circle : public Shape { public: void draw() override { // draw the circle } };
Circle c; // OK Shape& shape = c; // OK: use a base-class reference ```
If you intended Shape itself to be instantiable, remove = 0 or provide a concrete implementation.