one definition rule
Each function or variable may be defined once in the whole program.
The ODR requires exactly one definition of each non-inline function and variable across the program, and identical definitions of each class, template, and inline function in every translation unit that uses them. Breaking the cross-file part is often not diagnosed.