C++ Translation Units and ODR
C++ source files are compiled separately into translation units and later linked. The One Definition Rule constrains which declarations and definitions may appear across those units and prevents inconsistent definitions of the same entity.