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

Контейнер с указателями на... - C++

Восстановить пароль Регистрация
 
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.02.2011, 02:28     Контейнер с указателями на... #1
Можно ли создать контейнер с указателями на функции, и если да, то как можно вызывать эти функции? Все функции с одим аргументом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2011, 02:28     Контейнер с указателями на...
Посмотрите здесь:

работа с указателями C++
C++ Работа с указателями
Массив. с указателями с++ C++
Проблемка с указателями C++
Работа с указателями C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dxdy
 Аватар для dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 283
28.02.2011, 02:43     Контейнер с указателями на... #2
можешь пояснить вопрос.... методы можно вызывать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class ConstAutomat{
    string Str;
public:
    void (ConstAutomat::*state)();
    ConstAutomat(){ 
        state = &ConstAutomat::State_Q1; 
    }
    ~ConstAutomat() {}
 
    //----------------------
    void State_Q1();
    void State_Q2();
};
или можно вызывать методы через полиморфизм.....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct operation{
protected:
    char control;
    char id;
public:
    operation( char value, char index ){
        control = value; id = index;
    }
    virtual bool testOperation( char value, int* index, int* count ){
        return true;
    }
};
 
//---------------------
struct OR: public operation{
public:
    OR( char value, char index ):operation( value, index ){}
    virtual bool testOperation (char value, int* index, int* count ){
        return true;
    }
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//---------------------
class RegExp{
    string expression;
 
public:
    RegExp( const string& reg );
    ~RegExp();
 
private:
    void createAutomaton();
    vector< operation* > automaton;
 
};
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.02.2011, 02:44     Контейнер с указателями на... #3
В стиле С++0x.
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
#include <functional>
#include <iostream>
#include <vector>
 
void f1(int i)
{
   std::cout<<"f1(i)"<<'\n';
}
 
void f2(int i)
{
   std::cout<<"f2(i)"<<'\n';
}
 
int main()
{
    std::vector<std::function<void(int)> > vf;
    vf.push_back(f1);
    vf.push_back(f2);
    for(auto iter=vf.begin(); iter != vf.end(); ++iter)
        (*iter)(1);
    system("pause");
    return 0;
}
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
28.02.2011, 02:48  [ТС]     Контейнер с указателями на... #4
всем спасибо, проблема решена
Yandex
Объявления
28.02.2011, 02:48     Контейнер с указателями на...
Ответ Создать тему
Опции темы

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