Форум программистов, компьютерный форум CyberForum.ru

Шаблоны и переопределение функции swap - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ранги разработчиков. Что означает Junior, Middle и Senior Developer http://www.cyberforum.ru/cpp-beginners/thread1700720.html
сразу напишу, хотел задать в раздел работы, но там только заявки и прочее, общего нету (в плане ранги работы или вроде того) в нете попалась статья про ранги, там упоминаются Junior Developer, Middle Developer, Senior Developer(основные), в фирмах так все и идет по рангам ? или все по другому ?
C++ Вывести на экран первые n членов арифметической прогрессии C++ Напишите программу, выводящую на экран первые n членов арифметической прогрессии с заданным первым элементом a прогрессии и разность d. П5.4.Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п. http://www.cyberforum.ru/cpp-beginners/thread1700712.html
C++ Вместо кода абракадабра
Делал программу на одном компьютере,запустил на другом.В итоге вместо кода увидел(часть кода,форм. cpp): Vф:ћш@Н %џ"+њ$Q‡{VФ—q|L8VафлЃ…U°М’якZ…ъ9tэ™rz6# з§йМ)^љ`О,™Љjдґ6*ц\‰‹М‡ ТЖK*.б.nє®сMй±JМІЭ4@ҐНН±№P›„!‰Sq й¤п¶2ЙЊй„BГ@Hxe¦ѓЬ7є…РГЊ; Причем запускаю с автоматическим выбором кодировки и конкретно проблема только с одним файлом,причем вчера ее не было!Что вообще произошло?
Параметры функции fread C++
Вот программа: _____________________ #include <iostream> #include <stdio.h> #include <conio.h> #include <string.h> using namespace std; int const n=5;
C++ Определить в массиве максимальное количество идущих подряд и упорядоченных по возрастанию положительных чисел http://www.cyberforum.ru/cpp-beginners/thread1700645.html
Задан целочисленный массив Х из 20 элементов. Определить максимальное количество идущих подряд и упорядоченных по возрастанию положительных чисел.
C++ Программа должна напечатать сумму цифр числа Где дописать в коде, чтобы программа напечатала сумму. #include <iostream> using namespace std; int sumdigits(int x); int main () { int x; cout<<"Enter a number"<<endl; cin>>x; cout<<"The sum of digits is:"<<endl; подробнее

Показать сообщение отдельно
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2786 / 1432 / 393
Регистрация: 18.10.2014
Сообщений: 2,632
01.04.2016, 19:49     Шаблоны и переопределение функции swap
Цитата Сообщение от Lawliet1 Посмотреть сообщение
ошибка на этапе компиляции.. если точнее ошибки - там их целая пачка
Если вы хотели, чтобы "френдом" была именно конкретная специализация вашей шаблонной функции swap, то friend-обявление надо делать именно так

C++
1
friend void swap<T>(Stack<T>&, Stack<T>&);
и вы об этом знаете судя по вашим остальным объявлениям. Т.е. вы все правильно пишете. Но для шаблона swap (именно для него) сделать это надо выше объявления вашего внутренннего метода swap. Проблема именно в том, что ваш метод

C++
1
void swap (Stack&);
скрывает объявление внешнего шаблона и friend-объявление не может его найти.

Добавлено через 18 минут
Или, альтернативно, вместо того, чтобы перемещать объявления, вы можете решить проблему использовав квалифицированное имя шаблона

C++
1
        friend void my::swap<T>(Stack<T>&, Stack<T>&);
и перемещать ничего никуда не надо будет.
 
Текущее время: 22:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru