Returning NULL from this type of function doesn't make a lot of sense. You probably want a pointer not a reference.
NULL is defined as 0 ( or even (void*)0 ) and since 0 is an integer that is what you are returning in this function which doesn't work with a reference ( which has to reference an actual object )
In this case returning a pointer to a Urgency object in your function makes more sense. So try changing the reference to a pointer.
const Urgency* RandomBuildOrderStrategy::getUrgency()
{
return NULL;
}
Or even try returning an Urgency type that has been initialized in a special way that allowed you to check later if it is "empty".