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

Шаблон ф-ции - C++

Восстановить пароль Регистрация
 
Rusl_v
 Аватар для Rusl_v
13 / 12 / 1
Регистрация: 22.12.2010
Сообщений: 67
05.03.2012, 00:16     Шаблон ф-ции #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
using namespace std;
template <class T>
    T min(T number1,T number2){
    T minimum=number1;
    if (number2<minimum) minimun=number2;
    return minimum;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    int x,y,z;
    cout<<"Введите два числа:"<<endl;
    cin>>x>>y;
    cout<<"Наименьшее число равно:"<<min(x,y)<<endl;
    system("pause");
    return 0;
}
Ругается компилятор что
min: неоднозначный вызов перегруженной функции
может быть 'T min<int>(T,T)'
with
1> [
1> T=int
1> ]
1> e:\vs\vc\include\xutility(3371): или 'const _Ty &std::min<int>(const _Ty &,const _Ty &)'
1> with
1> [
1> _Ty=int
1> ]
1> при попытке сопоставить список аргументов '(int, int)'
Что не так подскажите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2012, 00:16     Шаблон ф-ции
Посмотрите здесь:

C++ Массив. Сортировка. Ф-ции
Ф-ции с рекурсиями C++
C++ Дружественные ф-ции и ввод строки
C++ Прототип ф-ции.
C++ Задача на написание ф-ции!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 00:18     Шаблон ф-ции #2
Rusl_v, min уже есть в пространстве имен std
убери using namespace std; и пиши везде явно std::cout, std::end; std::con
или помести свою версию min в новое пространство имен
Rusl_v
 Аватар для Rusl_v
13 / 12 / 1
Регистрация: 22.12.2010
Сообщений: 67
05.03.2012, 00:43  [ТС]     Шаблон ф-ции #3
Спасибо,разобрался,просто Дэйтелы не знали что я юзаю using namespace std; о которой практически ничего не знаю))

Добавлено через 19 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
template <class T>
    T min(T number1,T number2){
    T minimum=number1;
    if (number2<minimum) T minimum=number2;//Ругается когда не стоит T перед minimum,хотя уже было объявлено 
    return minimum;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    float x,y;
    std::cout<<"Введите два числа:"<<std::endl;
    std::cin>>x>>y;
    std::cout<<"Наименьшее число равно:"<<min(x,y)<<std::endl;
    system("pause");
    return 0;
}
Что то криво работает не хочет if (number2<minimum) T minimun=number2; присваивать наименьшее число.В чём проблема?)
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 00:45     Шаблон ф-ции #4
Rusl_v, у тебя просто опечатка в if() {..}
Yandex
Объявления
05.03.2012, 00:45     Шаблон ф-ции
Ответ Создать тему
Опции темы

Текущее время: 04:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru