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

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

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

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

18.07.2013, 17:50. Просмотров 572. Ответов 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++):

Вызов шаблонной функции - 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,...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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Эксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 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Эксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 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Эксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 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Эксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 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Эксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,227
Записей в блоге: 3
Завершенные тесты: 1
18.07.2013, 19:05 #12
Цитата Сообщение от BuGi Посмотреть сообщение
Я вот читал как раз про них, но не очень понял суть
Потому что не про то читали
BuGi
24 / 24 / 1
Регистрация: 02.01.2012
Сообщений: 371
18.07.2013, 19:21  [ТС] #13
В общих чертах я понял, что это такое (дескриптор/хендл -- указатель на какие-то системные данные?), но вот как он связан с массивом, переданным в функцию, не пойму)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 19:21
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.07.2013, 19:21
Ответ Создать тему
Опции темы

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