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

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

Восстановить пароль Регистрация
 
oleg2012
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 26
08.10.2012, 05:53     Шаблон функции #1
компилятор пишет, что неудается составить аргумент шаблон для "L", как это можно исправить??

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template <class T, class L>
L Sum(T x1, T x2)
{
 return static_cast<L>( x1 + x2 );
}
 
int main(void) 
{
    int a,b;
    cin>>a>>b;
    double f= Sum(a,b);
    cout<<f<<endl;
 
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2012, 05:53     Шаблон функции
Посмотрите здесь:

C++ Шаблон функции
шаблон функции C++
Шаблон функции C++
Шаблон функции C++
C++ Шаблон функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.10.2012, 07:28     Шаблон функции #2
C++
1
2
3
4
5
template <class T, class L>
 L Sum(T x1, L x2)
 {
    return static_cast<L>(x1 + x2);
 }
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.10.2012, 07:36     Шаблон функции #3
Цитата Сообщение от oleg2012 Посмотреть сообщение
double f= Sum(a,b);
double f= Sum<int, double>(a,b);
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
08.10.2012, 13:39     Шаблон функции #4
Тип входных параметров компилятор может вывести сам, а вот тип возвращаемого значения - не может, поэтому ему нужно немного подсказать:
C++
1
2
3
4
5
6
7
template <typename L, typename T>
L Sum(T a, T b)
{
//...
};
 
double f = Sum<double>(a,b);
Добавлено через 1 минуту
Если поменять местами параметры шаблона, то придётся указывать оба параметра:
C++
1
2
3
4
5
6
7
template <typename T, typename L>
L Sum(T a, T b)
{
//...
};
 
double f = Sum<int, double>(a,b);
Yandex
Объявления
08.10.2012, 13:39     Шаблон функции
Ответ Создать тему
Опции темы

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