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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Доступ к приватным членам http://www.cyberforum.ru/cpp-beginners/thread268650.html
доброго времени суток подскажите как мне правильно реализовать доступ. Есть класс в нём приватными членами являются указатель на char делая функции Set/Get с Sеt все нормально, возникает вопрос с Get хочется написать по глупому char * GetSome() { return Some;//Some типа char * } но это ведь будет ошибка так как some приватное поле и если мы вернем указатель на него то сможем его...
C++ Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве 1. Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве 2. Дан массив вещественных чисел размерностью N (1<N≤50). Вывести на экран значения и адреса наибольшего и наименьшего элементов массива, а также их разность http://www.cyberforum.ru/cpp-beginners/thread268642.html
Вычисление суммы ряда C++
Вычисление суммы ряда Потрудитесь один раз нормально оформить свою тему, глядишь, и отвечать будут охотнее.
C++ Дана последовательность целых чисел, за которой следует 0. Найти количество четных элементов этой последовательности.
Дана последовательность целых чисел, за которой следует 0. Найти количество четных элементов этой последовательности.
C++ Попадание точки в заштрихованную область http://www.cyberforum.ru/cpp-beginners/thread268639.html
написать программу на языке С
C++ Сформировать линейный динамический массив из элементов исходного, превышающий модуль среднего арифметического своих соседей. Сформировать линейный динамический массив из элементов исходного, превышающий модуль среднего арифметического своих соседей. (На простом С) подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
04.04.2011, 10:10     Шаблоны функций
Цитата Сообщение от Iliabobr Посмотреть сообщение
т.е. ето если есть переменная со значением, то её можно сделать любого типа?
а как ето на практике?))
Если речь о локальной переменной, параметре, или самом возвращаемом значении, то да. При конкретизации шаблона ставишь в соответствие всем условным типам соответствующие действительные типы и готово. Такой подход избыточен, если нужна только одна версия функции, но если много версий различающихся только типами, но не операциями, то шаблон позволяет тело функции описать один раз, а повторять для каждого сочетания типов только прототипы.

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
T abs (T x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x;
}
<T=short int> abs;
<T=long int> abs;
<T=float> abs;
<T=double> abs;
эквивалентно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
short int abs (short int x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x; 
}long int abs (long int x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x; 
}float abs (float x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x; 
}
double abs (double x)
{
 if (x<0.0)
 {
  return -x;
 }
 return x; 
}
, но короче.

Добавлено через 53 секунды
И чем больше типов и длиннее функция, тем больше выгода шаблонов.
 
Текущее время: 02:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru