1. Neither, use construction initialization lists. If you mean in the case you cannot, I generally name my member variables in such a way that the "this->" isn't required.
2. Probably the second, more organized. Although, I don't get a chance to use such a layout usually.
3. First, decreases compile time.
4. This depends. Generally though, I separate implementation and interface. Probably not through the same means as you do though.
5. If all I'm holding is variables and variables that need to be initialized, I'll use a struct. If I need members as well, I'll use a class.
6. The second although that's just me being picky. ifstream goes to ifstream. :D
4. Ultimately depends on the complexity of the class but I prefer header-only when possible, as it's easier to just include and use.
5. I do the second one every time. structs and classes are virtually the same thing and I don't suffer from the C mindset of a struct having no methods.
6. I'd try to stick with the type that is defaulted in the implementation, if possible. Isn't that ios_base::in?