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

Захват функции ? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.88
Uragaan
Заблокирован
23.07.2011, 14:35     Захват функции ? #1
Полиморфизм

Полиморфизмом в программировании называется переопределение наследником функций-членов базового класса, например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Figure
{
    ...
    void Draw() const;
    ...
};
 
class Square : public Figure
{
    ...
    void Draw() const;
    ...
};
 
class Circle : public Figure
{
    ...
    void Draw() const;
    ...
};
А как делают захват той или другой функции ?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.07.2011, 12:07     Захват функции ? #21
Цитата Сообщение от Kastaneda Посмотреть сообщение
там даже есть такой термин
Только это захват переменных (передача аргументов функции, если по человечески изъясняться), но не захват функции.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.07.2011, 12:08     Захват функции ? #22
Да, неуточнил.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.07.2011, 12:37     Захват функции ? #23
Цитата Сообщение от Kastaneda Посмотреть сообщение
Да, там даже есть такой термин "capture list" - список захвата, располагается между квадратными скобками.
Спасибо! Чувствую, наступает насущная необходимость плотно изучать новый стандарт, хотя он еще и не утвержден окончательно.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
24.07.2011, 12:42     Захват функции ? #24
ValeryLaptev, MSVS 2010 и новый GCC уже поддерживают лямбды. Вот, лично мне данное нововведение показалось довольно удобным)

Добавлено через 1 минуту
еще вот, комментарии Страуструпа к 0x.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.07.2011, 12:45     Захват функции ? #25
Цитата Сообщение от Kastaneda Посмотреть сообщение
ValeryLaptev, MSVS 2010 и новый GCC уже поддерживают лямбды. Вот, лично мне данное нововведение показалось довольно удобным)
Да с лямдами я знаком очень давно! Честное слово, пока кроме как потакание безалаберности программисам не вижу в них полезности.
Без лямд программер должен больше думать. А с лямдами - можно лепить код по мере написания.
Это потом боком выходит обычно...
Удобство лепить код - не всегда хорошо.
Скорость написания увеличивается, а качество - страдает обычно...
Но холивар заводить не будем, на этом и остановимся...
Kastaneda
24.07.2011, 12:49
  #26

Не по теме:

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Да с лямдами я знаком очень давно!
А я вот относительно недавно с ними познакомился, минусов пока не вижу (не так часто я их и использую).

taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 12:53     Захват функции ? #27
А кто такие лямды?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
24.07.2011, 12:56     Захват функции ? #28
функции объекты. отличие от функторов в возможности определения внутри тела функции
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 12:58     Захват функции ? #29
А кто такие функторы?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.07.2011, 12:59     Захват функции ? #30
Цитата Сообщение от alex_x_x Посмотреть сообщение
отличие от функторов в возможности определения внутри тела функции
Функторы (функциональные объекты) можно определять внутри функций.
Это безымянные функции, которые можно реализовывать на месте использования. Так чуть ближе к истине.

Добавлено через 20 секунд
Цитата Сообщение от taras atavin Посмотреть сообщение
А кто такие функторы?
std::less<>, например.)))
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 13:07     Захват функции ? #31
Дайте ссылку на подробное описание, кто такие лямды, функторы и с чем их едят.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.07.2011, 13:13     Захват функции ? #32
Цитата Сообщение от taras atavin Посмотреть сообщение
А кто такие функторы?
Класс, в котором перегружена операция вызова функции operator() - так точнее будет.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.07.2011, 13:15     Захват функции ? #33
taras atavin, Вот, там не только про лямбда, но и про другие фичи 0x.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 13:15     Захват функции ? #34
ValeryLaptev, что то я такого оператора не знаю. Что он делает?
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.07.2011, 13:17     Захват функции ? #35
taras atavin, функторы очень хорошо описаны в книжке Шаблоны в С++. Лучше мне не попадалось.
А лямды - это в функциональных языках. Например, в Lisp, Haskell. Ну, или в новом стандарте.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
24.07.2011, 13:18     Захват функции ? #36
taras atavin, может тогда перестать писать в разделе ++? толку то все равно нет
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
24.07.2011, 13:19     Захват функции ? #37
Цитата Сообщение от taras atavin Посмотреть сообщение
ValeryLaptev, что то я такого оператора не знаю. Что он делает?
Это не оператор, а операция вызова функции. И ее можно перегружать как метод класса.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 13:22     Захват функции ? #38
Здесь ничего общего с заголовком
Лямбда-функции (Lambdas)
отсюда не видно. И как это относится к заголовку
4. Правые угловые скобки
?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
24.07.2011, 13:23     Захват функции ? #39
taras atavin, Покрути страницу вниз. Крутить начинать от сюда.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2011, 13:26     Захват функции ?
Еще ссылки по теме:

Захват аудио и видео потоков C++
Захват ненужных данных C++
C++ Захват файлов

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
24.07.2011, 13:26     Захват функции ? #40
В Си для создания функторов используются указатели на функцию:

/* callback-функция */
int compare_function(int A, int B) {
return A < B;
}

/* объявление функции сортировки */
void mysort(int* begin_items,
int num_items,
int (*cmpfunc)(int, int));

int main(void) {
int items[] = {4, 3, 1, 2};
mysort(items,
sizeof(items)/sizeof(int),
compare_function);
return 0;
}
. То есть функтором какой то уникум додумался назвать то, что в пасквилятны зовут перемнной процедурного типа?
Yandex
Объявления
24.07.2011, 13:26     Захват функции ?
Закрытая тема Создать тему
Опции темы

Текущее время: 10:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru