Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
1

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

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

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

C++
1
2
3
4
5
template <typename Type, int size>
Type min( Type (&r_array)[size] )
{
//...
}
Что значит запись (&r_array)[size] ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.07.2013, 17:50
Ответы с готовыми решениями:

Раздельное объявление и описание шаблонной функции, принимающей в качестве операндов ссылку на объект класса "вектор"
Приветствую. Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;clocale&gt; #include...

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

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

Вызов шаблонной функции
Здравствуйте. Есть такой код: template&lt;class _Ty1, class _Ty2&gt; inline pair&lt;_Ty1, _Ty2&gt;...

12
В астрале
Эксперт С++
8026 / 4783 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
18.07.2013, 17:58 2
BuGi, Ссылка на массив размером size.
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:39  [ТС] 3
Такое допустимо только в шаблонах?
0
Грамотный. Безпорно.
16852 / 9747 / 1878
Регистрация: 27.09.2012
Сообщений: 24,152
Записей в блоге: 2
18.07.2013, 18:42 4
C++
1
2
3
4
int min( int (&r_array)[10] )
{
//...
}
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:43  [ТС] 5
Croessmah, а если не фиксированный размер? вроде size
И зачем в вашем случае в параметрах вообще задавать размер? Где будет использоваться, там надо писать
0
Грамотный. Безпорно.
16852 / 9747 / 1878
Регистрация: 27.09.2012
Сообщений: 24,152
Записей в блоге: 2
18.07.2013, 18:45 6
Цитата Сообщение от BuGi Посмотреть сообщение
а если не фиксированный размер? вроде size
можете передать указатель на массив, а размер массива вторым параметром
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:47  [ТС] 7
Это я знаю, всегда так делал, но вот посмотрите предыдущее сообщение, его поправил
0
Грамотный. Безпорно.
16852 / 9747 / 1878
Регистрация: 27.09.2012
Сообщений: 24,152
Записей в блоге: 2
18.07.2013, 18:49 8
Цитата Сообщение от BuGi Посмотреть сообщение
И зачем в вашем случае в параметрах вообще задавать размер?
Чтобы был известен размер массива

Добавлено через 32 секунды
Цитата Сообщение от BuGi Посмотреть сообщение
Где будет использоваться, там надо писать
Здесь нет примера использования
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 18:51  [ТС] 9
Цитата Сообщение от Croessmah Посмотреть сообщение
Чтобы был известен размер массива
Кому известен? Тому, кто пишет функцию, он понятное дело известен. Или какой-нибудь sizeof выдаст другие числа?
0
Грамотный. Безпорно.
16852 / 9747 / 1878
Регистрация: 27.09.2012
Сообщений: 24,152
Записей в блоге: 2
18.07.2013, 18:53 10
Цитата Сообщение от BuGi Посмотреть сообщение
Или какой-нибудь sizeof выдаст другие числа?
при таком объявлении выдаст размер массива.
Цитата Сообщение от BuGi Посмотреть сообщение
Кому известен?
дескриптору
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:03  [ТС] 11
Цитата Сообщение от Croessmah Посмотреть сообщение
дескриптору
Я вот читал как раз про них, но не очень понял суть
Основная идея заключается в том, чтобы использовать умные указатели для ссылок на ведущие указатели. Эти дополнительные указатели и называются дескрипторами.
Если имеется в виду Дескриптор - перевод слова Handle, а не Descriptor, то это некое число, значение которого практически не несет никакой смысловой нагрузки для программиста, однако оно позволяет однозначно идентифицировать некий объект операционной системы и использовать себя (дескриптор) в качестве ссылки
Где эти дескрипторы находятся и зачем они нужны? Или может есть ссылки на подробное описание
0
Грамотный. Безпорно.
16852 / 9747 / 1878
Регистрация: 27.09.2012
Сообщений: 24,152
Записей в блоге: 2
18.07.2013, 19:05 12
Цитата Сообщение от BuGi Посмотреть сообщение
Я вот читал как раз про них, но не очень понял суть
Потому что не про то читали
0
25 / 25 / 11
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:21  [ТС] 13
В общих чертах я понял, что это такое (дескриптор/хендл -- указатель на какие-то системные данные?), но вот как он связан с массивом, переданным в функцию, не пойму)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2013, 19:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Присваивание по ссылке в шаблонной функции
такая проблема: при попытке скомпилировать следующий код //... template &lt;typename Type&gt; void...

Реализация шаблонной функции copy
Задание: реализовать шаблонную функцию copy, копирующую часть или весь контейнер в другой...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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