6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
|||||||||||
1 | |||||||||||
Можно ли использовать параметр шаблона без типа?14.03.2012, 14:39. Показов 2003. Ответов 14
Метки нет Все метки)
(
Можно ли сделать чтобы работало как-то так:
1
|
|
14.03.2012, 14:39 | |
Ответы с готовыми решениями:
14
Аргументы шаблона по умолчанию можно использовать только в шаблоне класса |
Делаю внезапно и красиво
![]() 1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
15.03.2012, 12:38 | 3 |
Т.е. тебя не смущает, что в данном шаблоне T может быть только целым числом? Тогда пиши сразу "int obj" и не печалься.
0
|
6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
|
15.03.2012, 17:08 [ТС] | 4 |
0
|
Делаю внезапно и красиво
![]() 1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
15.03.2012, 17:20 | 5 |
Как бы это прописано в стандарте...
1
|
6 / 6 / 1
Регистрация: 01.12.2010
Сообщений: 105
|
||||||
15.03.2012, 22:09 [ТС] | 6 | |||||
Нашёл
Шаблоны функций можно использовать без указания типа за счёт перегрузки. Конечно не то, что хотелось, но тоже ничего, например:
1
|
Делаю внезапно и красиво
![]() 1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
16.03.2012, 06:34 | 7 |
Может ты лучше напишешь, чего хочешь получить? Вопрос в посте №1 никак не связан с №6.
Сейчас ты получил конструктор преобразования, принимающий хоть что в качестве аргумента. В данном случае это указатель на функцию, но точно так же можно передать всё что угодно. Т.е. использовать его нельзя.( Напиши, что именно ты хочешь.
1
|
06.05.2012, 13:31 | 8 | ||||||||||
А шаблоны обязательно так объявлять,или можно
Задача такая Написать шаблон функции для поиска среднего арифметического значений массива Разбираюсь с шаблонами функций,но что-то делаю не так не могу понять что?
Добавлено через 5 минут Всё разобрался. ссылка для тех кому может пригодится: http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B Вопрос снят, но если примерчик выложите буду благодарен.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
06.05.2012, 14:01 | 9 | |||||
1
|
06.05.2012, 17:11 | 10 | |||||
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
07.05.2012, 09:54 | 11 |
ссылка на массив
Если передавать просто T arr[N] - не происходит дедукция типов это просто инициализация значения для int, double etc формально тоже есть конструкторы
1
|
Делаю внезапно и красиво
![]() 1312 / 1227 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
07.05.2012, 20:04 | 12 |
Инициализация res конструктором по умолчанию. Аналогично записи T res();
Это статический массив размерностью N. Функция работает только со статическими массивами, т.к. тип (размерность массива) должны быть известны на этапе компиляции.
1
|
08.05.2012, 11:50 | 13 |
Спасибо! Я такого не знал,что можно T rez=T();
А вот еще код.Гляньте одним глазком.Что не так.Задача такая была написать перегруженные шаблоны,и решить уравнения Код
#include<iostream> #include<math.h> using namespace std; template <typename T>T Fun(T a,T b,T c); template <typename T>T Fun(T a,T b); template <typename T>T Fun(T a,T b) { T b=T();T a=T();T x=T(); x=((-b)/a); cout<<"x="<<x<<endl; } template <typename T>T Fun(T a,T b,T c) { T a=T();T b=T();T c=T();T x=T();T x1=T(); if(a==0) {cout<<"Error square root x, x1 not found";} else { x=(-b+(sqrt((b*b)-(4*a*c))))/(2*a); x1=(-b-(sqrt((b*b)-(4*a*c))))/(2*a); cout<<x<<'\n'<<x1; } } void main(void) { int a,b,c; cin>>a>>b; Fun(a,b); cin>>a>>b>>c; Fun(a,b,c); }
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
08.05.2012, 12:00 | 14 | |||||
тут вопрос не в шаблонах, компилятор же явно пишет
1
|
08.05.2012, 12:32 | 15 |
Спасибо Огромное.Звеняйте нас чайнкиов зеленых...Но без ваших консультаций никак...
0
|
08.05.2012, 12:32 | |
Помогаю со студенческими работами здесь
15
Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса Возврат объекта шаблонного типа от типа Type из специализации шаблона метода от того же типа Можно ли использовать cin.getline для указателя типа char* Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |