Объявление using namespace std;
означает, что вы используете все функции внутри namespace std
. Теперь в вашем коде есть собственная версия функции swap
, которая void swap(int *a, int *b)
.
Программа работала нормально по совпадению, потому что namespace std
имеет предопределенную функцию swap () , которая принимает целые числа. Без этого ваша программа не будет работать, так как созданная функция получает указатель. Это означает, что вам нужно передать адрес переменной swap(&var1, &var2)
.
Это называется Перегрузка функций . Он находит правильную функцию, которая подходит на основе параметров.
Подсказка: Избегайте использования using namespace std;
, так как это приведет к проблемам (столкновениям) в больших проектах, если вы не заинтересованы в созданных вами функциях.