It makes less readable code because usually you expect the class definition to be in the header with the same name and implementation in the implementation file with the same name.
In practice, there are cases when a class is relatively small, and closely related small classes can be grouped together, but this is in each case.
source
share