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

Хранение и вызов различных типов функций в одной переменной - C++

Восстановить пароль Регистрация
 
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
09.08.2014, 14:16     Хранение и вызов различных типов функций в одной переменной #1
Есть класс, который должен хранить функции и давать возможность их вызывать.
Он выглядит примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Functions
{
public:
    enum paramType{INT, DOUBLE, NOTYPE};
    int intVar;
    double doubleVar;
    template <class Functor>
    void setFunction(Functor F, paramType pType)
    {
        function = F; // ???
        type = pType;
    }
    void execute()
    {
        switch (type)
        {
        case INT:
            function(intVar);
            break;
        case DOUBLE:
            function(doubleVar);
            break;
        case NOTYPE:
            function();
        }
    }
private:
    funcVar function; // ???
    paramType type;
}
Вопрос: как правильно сохранять функции с неопределённым типом и как потом их правильно вызывать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.08.2014, 15:01     Хранение и вызов различных типов функций в одной переменной #2
Чтобы предлагать какое-то решение хотелось бы ознакомиться с первоначальной задачей. Т.е. откуда вообще возникло желание в одну и ту же переменную писать разные типы.
CyberSolver
 Аватар для CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
09.08.2014, 15:17     Хранение и вызов различных типов функций в одной переменной #3
orange_fox, какие есть ограничения на функции? Ну и хранить где?
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
09.08.2014, 15:36     Хранение и вызов различных типов функций в одной переменной #4
orange_fox, я конечно могу ошибаться, но мне кажется, что ты реализуешь std::function. Если я прав, то можно начать отсюда.
Yandex
Объявления
09.08.2014, 15:36     Хранение и вызов различных типов функций в одной переменной
Ответ Создать тему
Опции темы

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