********************************** Implementations in the Wrong Units ********************************** :Rule ID: ``implementation_in_wrong_unit`` :Severity: high A class member must be implemented in the source unit owned by that class. Keeping implementations with their declaration makes the unit predictable to navigate and prevents unrelated source files from accumulating hidden responsibilities. Correct Placement ================= Implement members of ``Foo`` in ``Foo.cpp``. If the implementation is split by responsibility, use ``Foo_.cpp``, such as ``Foo_parsing.cpp``. For a nested type such as ``Foo::State``, ``Foo`` remains the primary owning unit. Exceptions ========== Files whose names contain ``Windows`` or ``Posix`` may implement a platform-neutral base-class factory alongside the platform implementation. Demos and unit tests may organize implementations around their complete examples or fixtures. Mechanical Detection ==================== The scanner detects namespace-scope member-function definitions in ``cpp`` files whose owner does not match the source unit.