Esto es el ámbito (scope). Si quieres referenciar funciones miembro estáticas fuera de la clase, o definir funciones miembro fuera de la clase, debes usarlo. También se usa para utilizar tipos o funciones en espacios de nombres (como: std::cout, std::cin, std::string, etc.)
Ejemplo
class Test{
public:
Test();
static void print()
{
std::cout<<"Test"<<endl; //Usar :: para espacios de nombres
}
private:
int a;
};
Test::Test() : a(1) //Usar :: al definir
{}
Test::get(); //Usar :: al usar funciones miembro estáticas