Rule A2-8-2 (advisory, architecture / design /implementation, non-automated)

An implementation file name should reflect the logical entity for which it provides definitions.

Rationale

Naming an implementation file with a name of a declared type or accordingly to a collection of free functions makes a project structure more clear and readable.

See also

JSF December 2005 [8]: AV Rule 56: The name of an implementation file should reflect the logical entity for which it provides definitions and have a “.cpp” extension (this name will normally be identical to the header file that provides the corresponding declarations.).