وقتی :: موقع فراخوانی تابع پیش از اسم اون تابع بیاد به این معنیه که این تابع توسط کامپایلر در فضای نام سراسری در نظر گرفته میشه.
مثال زیر رو ببینین:
#include <iostream>
using namespace std;
//global function
void foo()
{
cout << "This function will be called by bar()";
}
namespace lorem
{
void foo()
{
cout << "This function will not be called by bar()";
}
void bar()
{
::foo();
}
}
int main()
{
lorem::bar(); //will print "This function will be called by bar()"
return 0;
}