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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ошибка вызова шаблонной функции
Вообщем у меня вопрос такой: Использую MVS 2010. Пишу шаблон функции для...


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

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

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