In an object-oriented language you can define and interface without an implementation (i.e. I want my object to be able to computeElipseRadii() without saying how to actually do it). This is a really good thing. When you inherit from a class where one more more methods don't have implementations, you are required to provide those implementations, otherwise the code won't be able to run when it actually needs to call those methods.
Every place where you see an " = 0;" at the end of a method indicates a place where you need to provide a definition your derived class before you can compile.
There are lot of good discussions about this concept if you Google that error.
Cody