Вероятно, нет никакой реальной разницы для ваших целей.Имеет значение, где в вашем файле cpp privateFunction
видно.Если вы добавите void barFunc() { privateFunction(); }
в конец обоих файлов, то Foo2.cpp компилируется, а Foo1.cpp - нет.
Обычно вы не определяете внешние символы из множества различных пространств имен в одном и том же файле cpp.так что разница не возникнет.