Look at Placing every single definition within an implementation source file within an unnamed namespace Unless of course that is defining an “external/exported†entity.In this instance, email might be made right before initial and past because it is declared 1st. Meaning its constructor will attempt to use 1st and final as well shortly