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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
#1

Можете обяснить зачем использовать template<> - C++

06.03.2012, 06:15. Просмотров 1834. Ответов 7
Метки нет (Все метки)

Привет всем... у меня такой вопрос:

Что такое template я уже как то понял, но...

Зачем и в какых ситуациях исползовать template<> ?

Спасибо заранее...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 06:15     Можете обяснить зачем использовать template<>
Посмотрите здесь:
Зачем использовать динамическую память? C++
Ошибка компиляции: template-id does not match any template declaration C++
C++ В чем различие template <typename T> от template <class T> ?
Visual Studio выдаёт ошибку при вынесении объявления функции с template в .h файл. Без template всё работает C++
C++ Зачем использовать чисто сишные средства в C++ коде?
C++ Зачем нужно использовать инициализаторы элемент-данных класса?
C++ Для чего нужны и зачем использовать smart-указатели?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gumi250
430 / 397 / 35
Регистрация: 06.02.2012
Сообщений: 1,372
06.03.2012, 06:37     Можете обяснить зачем использовать template<> #2
Чтобы не переписывать одну и туже ф-цию(класс) для всех возможных типов. Например без шаблонов будет так
C++
1
2
3
4
5
6
7
8
9
int Sum(int a, int b)
{ return a+b;
};
long Sum(long a, long b)
{ return a+b;
};
double Sum(double a, double b)
{ return a+b;
};
Здесь фактически одно и тоже вы делаете дважды, трижды, четырежды и т.д для всех возможных типов, и все равно все типы не перепишите.
А с шаблонами для все типов сразу.
C++
1
2
3
template<class T> T Sum(T a, T b)
{ return a+b;
}
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
06.03.2012, 09:56  [ТС]     Можете обяснить зачем использовать template<> #3
gumi250,
Спасибо огромное, а с классамы как он работает?
gumi250
430 / 397 / 35
Регистрация: 06.02.2012
Сообщений: 1,372
06.03.2012, 10:06     Можете обяснить зачем использовать template<> #4
А примерно также например, без шаблонов:
C++
1
2
3
4
5
6
7
8
class TPointInt
{ int x,y;
  Set(int x_, int y_);
}
class TPointFloat
{ float x,y;
  Set(float x_, float y_);
}
А с шаблонами:
C++
1
2
3
4
template <class T> class MPoint
{ T x,y;
  Set(T x_, T y_);
}
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
06.03.2012, 10:23  [ТС]     Можете обяснить зачем использовать template<> #5
gumi250,
Спасибо, а для чего на пример делаетса так:
C++
1
template <class T, int S, double J>
И как после обявление их, описать конструктор и деструктор?
И для чего привести столко переменных, если можно обявыть все в например
C++
1
template<typename T>
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
06.03.2012, 13:13     Можете обяснить зачем использовать template<> #6
Цитата Сообщение от Programmer. Посмотреть сообщение
И как после обявление их, описать конструктор и деструктор?
так
C++
1
2
3
4
5
6
7
8
template <class type>
class some_class
{
public:
    type data;
    some_class(type x): data(x) {}
    virtual ~some_class(void) {}
};
Цитата Сообщение от Programmer. Посмотреть сообщение
И для чего привести столко переменных, если можно обявыть все в например
нельзя, в первом случае у вас три параметра шаблона, а во втором - только один и весь добавочный функционал вам нужно будет реализовывать какими-то иными отличными от шаблона способами
gumi250
430 / 397 / 35
Регистрация: 06.02.2012
Сообщений: 1,372
06.03.2012, 16:45     Можете обяснить зачем использовать template<> #7
Цитата Сообщение от Programmer. Посмотреть сообщение
gumi250,
Спасибо, а для чего на пример делаетса так:
C++
1
template <class T, int S, double J>
Никогда не пользовался этим, но если я не ошибаюсь, то через параметры шаблона можно передавать константы, могу ошибится в коде, но как то так:
C++
1
2
3
template <class T, int S> ckass TA
{ T A[S];
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2012, 21:37     Можете обяснить зачем использовать template<>
Еще ссылки по теме:
C++ Зачем учить указатели, если можно использовать вектор?
C++ Зачем использовать функции-члены для изменения членов-данных
C++ Зачем нужен массив указателей на функцию и как его использовать?
Зачем используют конструкцию в длинных ветвлениях else if, если можно просто использовать один if C++
C++ MSVC и template template classes

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

Или воспользуйтесь поиском по форуму:
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
06.03.2012, 21:37  [ТС]     Можете обяснить зачем использовать template<> #8
gumi250,
vxg,
Понял, спасибо...
Yandex
Объявления
06.03.2012, 21:37     Можете обяснить зачем использовать template<>
Ответ Создать тему
Опции темы

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