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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
oleg2012
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 26
#1

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

08.10.2012, 05:53. Просмотров 290. Ответов 3
Метки нет (Все метки)

компилятор пишет, что неудается составить аргумент шаблон для "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++
C++ Шаблон функции
C++ c++ шаблон функции
Шаблон функции C++
Шаблон функции C++
C++ Шаблон функции
Шаблон функции C++
C++ Перегруженные функции и шаблон функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5410 / 4806 / 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
3030 / 2351 / 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
757 / 690 / 124
Регистрация: 27.07.2012
Сообщений: 1,975
Завершенные тесты: 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     Шаблон функции
Ответ Создать тему
Опции темы

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