Номер 1 довольно прост - если вы ищете имя N внутри класса, и у класса есть член N, вот и все! Тебе не нужно искать где-то еще.
Номер 2, я думаю, похож, но внутри блока
{
void f(double);
f(42);
}
код будет пытаться вызвать объявленную там функцию f, если это возможно, и отказаться от нее в противном случае.
Номер 3 снова похож. Если вы ищете имя N и находите что-то с этим именем, которое не является функцией, вам не нужно искать перегрузки.