Inactive Tutor answered 6d
It's generally a good idea to have one class per file, though some exceptions can be made. The reason for this is to make it easy to find the class you are looking for in the file structure. Typically it's best to have a file name that is the same as the class name inside the file. This makes it very easy to navigate the file structure and find the class you are looking for without doing a project wide text search.
A couple of exceptions would be nested classes, or classes that are so interrelated that it makes sense to have it in the same class.
An example of a recent project that I am bundling multiple classes together is a project that has a complex event system with over 40 inherited members. Each event class is very simple. To avoid creating 40 different files to handle each event class, I simply bundled all of the event classes into one file. For me this organization structure makes sense because of how simple each class is, and the location of all the events is in a predictable location.
Overall, I would say make sure the structure of the project is logical, predictable and consistent. If you group classes together, do it only if they are very tightly related. Also make it an established convention that is easy to explain to other developers on the project. Make sure that whatever you do it becomes a consistent rule that you follow throughout the project. This will keep it simple for other programmers to understand and navigate the structure, and they could easily predict the location of other classes that may not match a file name. That said if you are working with other programmers you should make sure to follow the conventions already established on the project. Don't be the only programmer adding more than one class in a file.