One disadvantage might be the lack of information hiding / encapsulation.
I prefer to have the most minimal header file I can. It means I'm not obligated to continue supporting so many features. If I want to change something, and that something hasn't been exposed in the public header, there is a much better chance I can change it internally to the class without affecting anyone else.
EDIT:
Luke asked for an example, so here ya go:
Suppose you have a class called Car. And, the only thing you built it for was to get from point A to point B. Me, personally, I'd prefer to keep my header file to: a class called Car, and a method called Drive. From the way you phrased your question ("all the classes that I can") I would expect to find classes like "DieselEngine", "PetrolEngine", "HybidEngine" and such in your header file as well. The problem with this is that other people working on your project (or, you, over time) start to use those exposed classes. Now, two years later, you decide "Hrm... that PetrolEngine class is really causing problems for me. I think I'm just going to remove it and replace it with the HybridEngine entirely in my Car class" - well, now PetrolEngine is encluded in 100 other files for reasons you don't understand - and now you're forced to keep PetrolEngine around (and working as it used to) for all those other guys who used it in some say you're not really sure of - because you didn't have a solid working "contract" for how you wanted that class to be used in the first place. It was an implementation detail of what you really wanted to accomplish - building a car.
EDIT to discuss comments about information hiding:
If all you're doing is strictly forward-declaring the class/struct name - well, I guess I would ask "why" again. If I'm a consumer of your header file and class(es), and I can't actually do anything with that class - and it's not exposed as a parameter or return type of your principal class's API - then why expose it at all?
If you are using it for compile time type safety checks for opaque data structures - fine - that's one thing. But, the way you phrased your question made it sound to me like everything went in the header file as a matter of course.