1 / 1 / 0
Регистрация: 13.06.2019
Сообщений: 34

Шаблоны функций и оператор cin

12.12.2023, 08:48. Показов 1287. Ответов 21

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
using namespace std;
template <typename T>
T swap(T a, T b);
int main(int argc, char *argv[])
{
    int a, b;
    cin>>a;
    cin>>b;
    cout <<swap(a, b);
    
 
}
template<typename T>
T swap( T a, T b)
{
    return a >b ? a : b;       
}
Добрый день

Подскажите почему не работает с cin?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2023, 08:48
Ответы с готовыми решениями:

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор *
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые мне не понятны, и прошу объяснить, как...

Перегрузка функций, шаблоны функций Функция определения объемов: шара по его радиусу
Перегрузка функций, шаблоны функций Функция определения объемов: шара по его радиусу (V=4/3пиR2), конуса по радиусу основания и высоте...

21
13.12.2023, 10:15
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Код должен в первую очередь работать, то есть решать поставленную задачу
Это не в первую очередь. Это вообще не обсуждается и не рассматривается, ибо это само по себе подразумевается.
Как и машина должна ехать, а смонтированный электрощиток обеспечивать напряжениями выводные концы в правильной раскладке по земле-фазе-нейтрали. Это не " в первую очередь", это само собой разумеющееся.

А профессионально сделанная работа - она про другое. Она про обеспечение заявленных требований (по нагрузке, ресурсам и т.д.) и по поддерживаемости решения.
Программу должно быть легко расширять и она должна быть понятна другому специалисту, в электрощитке заложены запасы кабеля для переноса / замены автоматов и т.д.
Вот это - профессионализм, считаю.
А хаки/трюки/мне так привычно (это я недавно такой аргумент услышал замечательный), "смотри как я извернулся!" - это все фигня, либо стартапы, где всем вообще пофик, лишь бы перед "инвесторами отчитаться".

Так что вот эти вот все "мне так понятно" "это ж стандарт" - не очень добрый аргумент, считаю.

Хотя swap для аргументов в виде ссылок на "структуры студентов" - наверное идея неплохая.
Но таки огрестись потом с таким проектом - запросто.

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
13.12.2023, 15:16
Lord-Stanly, в вашем коде конфликтуют две ошибки. Одна, как уже сказали, в непонимании использования объявления using namespace. А вторая мощнее, она заключается в неверном именовании. Вы выбрали имя объявленное в пространстве имён std и получили конфликт, но важно и то, что фактически, ваша функция ничего не обменивает. Она возвращает максимальное или равное из двух значений переданных аргументов и требует от их типа наличие оператора сравнения на >. Эту функцию не нужно называть swap. Назвав её max вы тоже получили бы конфликт (в std тоже есть это имя). Поэтому переименуйте функцию в любом случае, но на будущее, старайтесь избегать using namespace до тех пор, пока не научитесь читать сообщения компилятора или не поймёте тонкостей использования using namespace, как такового. В крайнем случае, вы можете провести видимость тех имён из std, которые вы конкретно, хотите использовать в данной программе. Это можно делать как локально, так и глобально. Например, вы могли бы написать: using std::cin;. Это избавило бы вас от необходимости набирать std:: (оператор разрешения имени) перед каждым cin. Зато вы избежите конфликтов с другими именами, а главное, будете помнить, что перегружать имя cin компилятор не позволит и понимать почему он пишет о конфликте в сообщении об ошибке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2023, 15:16

Оператор cin и ошибка
Вот у меня есть такая прога она считивает цифру если она входит в диапазон пишет Ок и завершает програму если нет то спрашивает еще...

Оператор cin в одну строку
Подскажите как организовать вывод через cin в одну строку на примере: #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Защита от дурака при вводе текста с помощью: cin.get cin.clear cin.sync
Доброго времени суток. На С++ учусь с недавних пор. Имеется стандартная &quot;защита от дурака&quot; на ввод. Не пойму предназначение cin.get()...

Объясните пожалуйста как работают cin.good(), cin.sync(), cin.clear()
Такая проблема: сдаю в вуза лабораторные по программированию, писал все сам, до этого c++ не изучал, поэтому возникали некоторые проблемы....

Оператор Like и шаблоны
Доброго времени суток, коллеги! Есть код, который не позволяет вводить а текстовое поле ничего, кроме цифр и знака &quot;,&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru