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

Шаблоны - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
frech
32 / 32 / 0
Регистрация: 17.07.2008
Сообщений: 520
18.08.2008, 11:55     Шаблоны #1
Вот проблема :
Код
#include <iostream.h>

using namespace std;

template <class T> T max (T a, T b)
{
    if (a>b) {
        return a;
    }
    else
    return b;
}

float max (float, float);
int max (int, int);

void main (void)
{
    cout<<"maksimum 5.4321 i 1.2345 raven:"<< max(5.4321, 1.2345)<<endl;
    cout<<"maksimum 100 i 200 raven:"<< max ( 100,200)<<endl;    
}
программа взята из книги, компилятор Борланд 2006 дает ощибку:
1. [C++ Error] Unit12.cpp(19): E2015 Ambiguity between 'std::const double & max<double>(const double &,const double &)' and 'double max<double>(double,double)'
2. [C++ Error] Unit12.cpp(20): E2015 Ambiguity between 'std::const int & max<int>(const int &,const int &)' and 'int max<int>(int,int)'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2008, 11:55     Шаблоны
Посмотрите здесь:

C++ шаблоны
C++ шаблоны в си++
C++ Шаблоны
Шаблоны C++
Шаблоны C++
C++ Шаблоны
C++ Шаблоны C++11
Шаблоны С++ C++
Шаблоны C++
Шаблоны C++
C++ Шаблоны в C++
C++ Шаблоны

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
18.08.2008, 12:04     Шаблоны #2
Компилятор не может выбрать,какую функцию использовать,из библиотеки std или твою.
Переименуй свою фунцкию в Max или max1 или еще как-нибудь.

Добавлено через 35 секунд
И,пожалуйста,заключай код в специальный тэг. Мне не хочется каждый раз делать это за тебя
ABTOP
 Аватар для ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
18.08.2008, 12:09     Шаблоны #3
Код
 
#include <iostream.h>

template <class T> T max (T a, T b)
{
    if (a>b) {
        return a;
    }
    else
    return b;
}
 
void main()
{
    cout<<"maksimum 5.4321 i 1.2345 raven: "<<max(5.4321, 1.2345)<<endl;
    cout<<"maksimum 100 i 200 raven: "<<max(100,200)<<endl;
}
шаблоны для того и нужны что бы не перегружать прототипы функций(функции)...
<class T> принимает в себя, в качестве параметра тип, и далее везде где встречаеться Т оно подставляет полученый тип...
TGrey[WoLf]
 Аватар для TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
14.09.2008, 17:03     Шаблоны #4
Цитата Сообщение от ABTOP Посмотреть сообщение
Код
 
#include <iostream.h>

template <class T> T max (T a, T b)
{
    if (a>b) {
        return a;
    }
    else
    return b;
}
 
void main()
{
    cout<<"maksimum 5.4321 i 1.2345 raven: "<<max(5.4321, 1.2345)<<endl;
    cout<<"maksimum 100 i 200 raven: "<<max(100,200)<<endl;
}
шаблоны для того и нужны что бы не перегружать прототипы функций(функции)...
<class T> принимает в себя, в качестве параметра тип, и далее везде где встречаеться Т оно подставляет полученый тип...
Хоть и не по теме, но зато высказал все же, что такое Шаблоны и для чего они нужны
Yandex
Объявления
14.09.2008, 17:03     Шаблоны
Ответ Создать тему
Опции темы

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