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

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

Войти
Регистрация
Восстановить пароль
 
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
#1

Массив функций - C++

31.12.2012, 17:28. Просмотров 699. Ответов 13
Метки нет (Все метки)

Необходимо создать во время выполнения массив функций, как такое можно обеспечить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.12.2012, 17:28     Массив функций
Посмотрите здесь:

Массив функций - C++
Есть функция: bool sota(a& d1, a& d2) {return 1;} Я вызываю её вот так: sort(mas->begin(), mas->end(), sota); Мне нужно сделать...

Fn(string s) - в массив функций - C++
Есть различные функции хэширования string f1(string s) f2(string s) ... fn(string s) как их все вызвать, не нагромождая код? ...

Массив функций класса - C++
Здравствуйте, нужно сделать массив функций drawtext()...drawtext15(), так как я предлагаю не работает пишет идентификатор не найден,...

Двумерный массив(в виде функций) - C++
#include <iostream.h> #include<conio.h> const int n=3, m=4; void InArray(int a); void Change(int a,int kol); void PrintArray (int...

Шаблоны функций и массив указателей - C++
Задание! Создайте шаблонную функцию maxn(), которая принимает в качестве аргумента массив элементов типа Т и целое число, представляющее...

Одномерные массив (Шаблоны функций) - C++
Задание. Вот задание из одномерных массивов Вот решенное задание из одномерных массивов #include <vcl.h> #pragma...

Создать массив адресов функций - C++
Помогите пожалуйста создать массив адресов функций. Не могу понять как записать это //вид функции bool MyFunc() { ... } ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
31.12.2012, 17:34     Массив функций #2
не совсем понял. рекурсия?
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
31.12.2012, 17:42     Массив функций #3
Массив указателей на функции
int (*arr[3]) (int, int);
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
31.12.2012, 18:17  [ТС]     Массив функций #4
Ogniel, нет
Dekio, да, но это на этапе компиляции происходит же. (а нужен динамический массив функций)
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.12.2012, 18:24     Массив функций #5
Цитата Сообщение от linq Посмотреть сообщение
Dekio, да, но это на этапе компиляции происходит же. (а нужен динамический массив функций)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
void f(int)
{
   std::cout << "Hello" << std::endl;
}
 
typedef void (*P)(int);
 
int main()
{
   P* arrfun = new P[5];
   arrfun[0] = f;
   arrfun[0](5);
}
http://liveworkspace.org/code/1GZn0b$0

Добавлено через 25 секунд
а про delete[] то и забыл

Добавлено через 25 секунд
C++
1
2
3
4
5
6
7
int main()
{
   P* arrfun = new P[5];
   arrfun[0] = f;
   arrfun[0](5);
   delete[] arrfun;
}
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
31.12.2012, 18:33  [ТС]     Массив функций #6
Цитата Сообщение от linq Посмотреть сообщение
на этапе компиляции
глупость я какую-то сказал, но не суть, вопрос не отпал

Добавлено через 9 минут
go, хорошо, а если тип может быть любым, то как поступить? Сейчас пробовал с шаблонами, что-то не получилось
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
31.12.2012, 18:35     Массив функций #7
Цитата Сообщение от linq Посмотреть сообщение
go, хорошо, а если тип может быть любым, то как поступить? Сейчас пробовал с шаблонами, что-то не получилось
Тип чего?
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 18:36     Массив функций #8
а если не секрет то ради чего такой массив?
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
31.12.2012, 18:38  [ТС]     Массив функций #9
Nixy, сам пока не знаю.
go, тип функции
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
31.12.2012, 18:44     Массив функций #10
врятли получится что то большее, возвращаемый тип знать необходимо
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
31.12.2012, 19:03     Массив функций #11
Цитата Сообщение от linq Посмотреть сообщение
сам пока не знаю
Цитата Сообщение от Мишель Монтень
Если не знаешь, куда идешь, придешь не туда.
Чтобы получить осмысленный ответ, надо точно сформулировать, чего хочешь добиться, какую работу должен выполнять такой код.
linq
1 / 1 / 0
Регистрация: 05.11.2012
Сообщений: 26
31.12.2012, 19:28  [ТС]     Массив функций #12
Ну хорошо, нужно создать класс для управления вызовами функций. у класса должны быть две функции: добавление в массив функцию и вызов по индексу из массива.

Задача по себе легкая, но у меня не получается динамически управлять массивами функций, без использования std::function
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
31.12.2012, 20:18     Массив функций #13
А вы думали, есть какой-то silver bullet? Чтобы полчить тип "какая-то функция" можно или склепать шаблонный класс и получить менее гибкую, неэффективную и забагованную реализацию std::function, или пользоваться драконовскими указателями типа void (*)(void), которым до лампочки, каким образом функция получит свои аргументы и как будет возвращать результат (или void operator(), те же яйца), или динамическая типизация.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.12.2012, 20:26     Массив функций
Еще ссылки по теме:

Шаблоны функций и двумерный массив - C++
Задание следующее: программа работает с двумерным массивом, получает размерность и элементы, выводит матрицу на экран. Далее подсчитывает...

Оформить одномерный массив в виде функций - C++
и снова я мучаюсь с функциями:wall: и кажется снова они получились вложенными:gscratch: 1.) вычислить номер максимального по...

Создать динамический массив вне функций - C++
Кратко говоря, нужно реализовать что-то типа этого: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Динамически выделить память под массив функций - C++
QByteArray (SerfingThread::*lp_GetRequest)(const QByteArray&amp; ,const QByteArray&amp;); как сделать тоже самое только через new? как правильно...

Возожно ли создать массив указателей на шаблоны функций? - C++
Можно ли создать массив указателей на шаблоны функций, если да, то как? Пробовал вот так template &lt;class my_type&gt; void my_func( my_type*...


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

Или воспользуйтесь поиском по форуму:
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
31.12.2012, 20:26     Массив функций #14
Цитата Сообщение от linq Посмотреть сообщение
Ну хорошо, нужно создать класс для управления вызовами функций
Вот это как раз ответ на вопрос "как делать". А что предполагается таким образом делать, зачем нужен такой класс - неясно.
Yandex
Объявления
31.12.2012, 20:26     Массив функций
Ответ Создать тему
Опции темы

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