In general, a derived class that inherits a pure virtual member function from its abstract base class implements this function. The opposite is also true: a virtual member function that is implemented in a base class can become pure virtual in a derived class. For example:
class Base
{
virtual void func() { /*do something */ }
};
class Derived : public Base
{
virtual void func() = 0; // redefined as pure virtual
};
You don't normally convert a virtual member function to a pure virtual in a derived class, however, sometimes it is the only way to overcome flaws in a base class that you are not allowed to fix but have to inherit from.