Все это время я думал, что глобальный оператор разрешения пространства имен был необязательным, и для случаев, когда символ относится к чему -то в глобальном пространстве имен: < /p>
Код: Выделить всё
void my_func()
{}
int main()
{
my_func();
::my_func();
}
< /code>
my_func()
и :: my_func () точно так же. Однако внутри класса, когда я делаю :: my_func () он не работает и говорит, что нет никакой функции, и когда я выполняю my_func () , это работает. И да, я проверил, чтобы увидеть, существует ли my_func () , определяемый в самом классе, чтобы он решал это. Есть ли разница в правилах поиска между my_func () и :: my_func () Помимо того, что они оба относятся к одному имени именам?
Я думаю, что есть разница с шаблонами? Что с одним, он еще не должен быть определен?
Подробнее здесь:
https://stackoverflow.com/questions/796 ... e-operator