little_greg Опубликовано 14 октября, 2009 Жалоба Поделиться Опубликовано 14 октября, 2009 всем доброго времени суток, подскажите, пож, почему при вызове функции происходит ошибка, "...call of overloaded `swap(int&, int&)' is ambiguous", (что-то вроде: вызов перегруженной функции двусмысленный) #include <iostream>using namespace std;template <typename T>void swap(T& a, T& b);int main(){int i = 10;int j = 20;cout << "i, j = " << i << ", " << j << ".\n";cout << "using int swap:\n";swap(i, j);cout << "now i, j = " << i << ", " << j << ".\n";double x = 24.5;double y = 81.7;cout << "x, y = " << x << ", " << y << ".\n";cout << "using double swap:\n";swap(x, y);cout << "now x, y = " << x << ", " << y << ".\n";system("pause");return 0;}template <typename T>void swap(T& a, T& b){ T temp; temp = a; a = b; b = a;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Lion HC Опубликовано 14 октября, 2009 Жалоба Поделиться Опубликовано 14 октября, 2009 Для начала попробуйте: template <typename T>void swap(T& a, T& b){ T temp = a; a = b; b = temp;} Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 14 октября, 2009 Автор Жалоба Поделиться Опубликовано 14 октября, 2009 не сработало... Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 14 октября, 2009 Жалоба Поделиться Опубликовано 14 октября, 2009 little_greg: Похоже, у тебя конфликт двух функций swap: определенной тобой и существовавшей раньше. Попробуй заменить имя функции swap на другое, скажем, swapm Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 15 октября, 2009 Автор Жалоба Поделиться Опубликовано 15 октября, 2009 и правда, заработало, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти