Unless we're talking about different things, that's incorrect. Virtual functions are optional, but a pure virtual function has to be overloaded in the derived class or the compiler will throw a fit.
virtual MyFunction();
vs
virtual MyFunction() = 0;
virtual MyFunction();
vs
virtual MyFunction() = 0;