As you mentioned, all of the above are types of cost/time estimates. The accuracy of the estimate increases the more you move into the alphabet, for example, an cost estimate of class a is barely accurate, while a cost estimate of class d is highly accurate (but nothing is a 100% accurate).
Here's how they are used:
Estimate class a: Ballpark estimate. This is the kind of estimate when you're in a meeting discussing potential projects and someone asked you how much do you think this project will cost, and you tell him immediately around $1 million.
Estimate class b: Preliminary estimate. This is the kind of estimate you come up with after having a very shallow idea about the requirements of the project.
Estimate class c: More accurate than estimate class b, this estimate is based on real requirements.
Estimate class d: The most accurate type of estimate, this estimate is based on detailed requirements that are gathered from the client.