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

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

Войти
Регистрация
Восстановить пароль
 
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
#1

Объявление шаблонной функции - C++

18.07.2013, 17:50. Просмотров 533. Ответов 12
Метки нет (Все метки)

Здравствуйте, встретил в учебнике это:

C++
1
2
3
4
5
template <typename Type, int size>
Type min( Type (&r_array)[size] )
{
//...
}
Что значит запись (&r_array)[size] ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2013, 17:50     Объявление шаблонной функции
Посмотрите здесь:

Вызов шаблонной функции - C++
Что я делаю не так? есть функция: template &lt;class T&gt; T rFF(string input_file) { string tmp; ifstream file(input_file); file...

Создание шаблонной функции - C++
Создать шаблонную функцию, изменяющий порядок элементов таким образом: первая половина списка смещается в конец, а вторая в начало. К...

Итераторы в шаблонной функции - C++
Здравствуйте, пишу программу, в ознакомительных целях с шаблонными функциями. У меня есть функция, вычисляющая среднее арифметическое. Как...

Присваивание по ссылке в шаблонной функции - C++
такая проблема: при попытке скомпилировать следующий код //... template &lt;typename Type&gt; void input(Type&amp; result,int x, int y,...

Аргумент в виде шаблонной функции - C++
void Function(любая_функция_с_одним_параметром){} Как при помощи шаблона всунуть в аргумент функции, любую функцию с одним параметром,...

Экспорт шаблонной функции из DLL - C++
Привет! В DLL есть класс и глобальная шаблонная функция, для получения интерфейса этого класса при динамическом подключение DLL: ...

Не вызывается специализация шаблонной функции - C++
Читаю книгу Прата, C++ Primer Plus. В ней есть следующее упражнение. Необходимо написать шаблонную функцию maxn(), которая принимает в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
18.07.2013, 17:58     Объявление шаблонной функции #2
BuGi, Ссылка на массив размером size.
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:39  [ТС]     Объявление шаблонной функции #3
Такое допустимо только в шаблонах?
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 18:42     Объявление шаблонной функции #4
C++
1
2
3
4
int min( int (&r_array)[10] )
{
//...
}
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:43  [ТС]     Объявление шаблонной функции #5
Croessmah, а если не фиксированный размер? вроде size
И зачем в вашем случае в параметрах вообще задавать размер? Где будет использоваться, там надо писать
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 18:45     Объявление шаблонной функции #6
Цитата Сообщение от BuGi Посмотреть сообщение
а если не фиксированный размер? вроде size
можете передать указатель на массив, а размер массива вторым параметром
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:47  [ТС]     Объявление шаблонной функции #7
Это я знаю, всегда так делал, но вот посмотрите предыдущее сообщение, его поправил
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 18:49     Объявление шаблонной функции #8
Цитата Сообщение от BuGi Посмотреть сообщение
И зачем в вашем случае в параметрах вообще задавать размер?
Чтобы был известен размер массива

Добавлено через 32 секунды
Цитата Сообщение от BuGi Посмотреть сообщение
Где будет использоваться, там надо писать
Здесь нет примера использования
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:51  [ТС]     Объявление шаблонной функции #9
Цитата Сообщение от Croessmah Посмотреть сообщение
Чтобы был известен размер массива
Кому известен? Тому, кто пишет функцию, он понятное дело известен. Или какой-нибудь sizeof выдаст другие числа?
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 18:53     Объявление шаблонной функции #10
Цитата Сообщение от BuGi Посмотреть сообщение
Или какой-нибудь sizeof выдаст другие числа?
при таком объявлении выдаст размер массива.
Цитата Сообщение от BuGi Посмотреть сообщение
Кому известен?
дескриптору
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:03  [ТС]     Объявление шаблонной функции #11
Цитата Сообщение от Croessmah Посмотреть сообщение
дескриптору
Я вот читал как раз про них, но не очень понял суть
Основная идея заключается в том, чтобы использовать умные указатели для ссылок на ведущие указатели. Эти дополнительные указатели и называются дескрипторами.
Если имеется в виду Дескриптор - перевод слова Handle, а не Descriptor, то это некое число, значение которого практически не несет никакой смысловой нагрузки для программиста, однако оно позволяет однозначно идентифицировать некий объект операционной системы и использовать себя (дескриптор) в качестве ссылки
Где эти дескрипторы находятся и зачем они нужны? Или может есть ссылки на подробное описание
Croessmah
Модератор
Эксперт CЭксперт С++
12980 / 7292 / 812
Регистрация: 27.09.2012
Сообщений: 18,007
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 19:05     Объявление шаблонной функции #12
Цитата Сообщение от BuGi Посмотреть сообщение
Я вот читал как раз про них, но не очень понял суть
Потому что не про то читали
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 19:21     Объявление шаблонной функции
Еще ссылки по теме:

Ошибка вызова шаблонной функции - C++
Вообщем у меня вопрос такой: Использую MVS 2010. Пишу шаблон функции для поиска максимального из двух чисел: template &lt;class T&gt; T...

Экспортирование шаблонной функции из dll - C++
Использую mvs 2013 Весь вечер курил сайт microsoft по шаблонам и dll, никакого упоминания об экспортировании шаблонной функции из dll, не...

Ошибка вызова шаблонной функции - C++ - C++
Читаю Прата, остановился на таком задании: Напишите функцию с интерфейсом в старом стиле, которая имеет следующий прототип: int...

Возврат итератора map из шаблонной функции - C++
Собственно, вот: Вызов функции: Find&lt;map&lt;string, Circle*&gt;, map&lt;string, Circle*&gt;::iterator&gt;(CircleMap, CircleIter, st); Сама...

Указать тип переменной в шаблонной функции - C++
Доброго времени суток, форумчане! Есть переменная. Есть шаблонная функция. Как в качестве параметра шаблона мне указать тип данных, к...


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

Или воспользуйтесь поиском по форуму:
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:21  [ТС]     Объявление шаблонной функции #13
В общих чертах я понял, что это такое (дескриптор/хендл -- указатель на какие-то системные данные?), но вот как он связан с массивом, переданным в функцию, не пойму)
Yandex
Объявления
18.07.2013, 19:21     Объявление шаблонной функции
Ответ Создать тему
Опции темы

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