Is it bad to put the class definition in the header file (for non template classes)? I ask because I've been doing a lot of java programming over the last few months, and now coming back to C++, I find it annoying to keep the .h and .cpp files in synch when I do something like change a method name.
I often put the code for get/set methods in my .h file because they will be used inline (to my belief).
However, if you are putting all of your code in the .H files you will quickly end up with problems with cyclic-dependencies between your classes. It should also bloat your code significantly as the compiler physically puts all of your code into every other file that includes that .H file.
Keeping the .H and .CPP files in sync is that big an issue. Just maintain a level of discipline to your coding standards and naming conventions. I would also suggest using something like Eclipse + CDT as your IDE. It will let you refactor function names pretty easily.
The other thing to consider is why you are having to change method names. If you are writing anything more than the most trivial of programs then it is always worth spending some time designing the program before you start coding - it will seem like wasted effort the first time when you do it, as you'll be thinking 'Why don't I just write the code, this way I'm doing everything twice', but then as you get further in, and realise that you have much less rework when coding, you'll see the benefit:-)
Yes I used to do this all the time, but in my current project I had a Class Menu and Menu Item, Menu having a vector of MenuItems and MenuItem having a pointer to its parent.
"cyclic-dependencies" as Zatia said... eww