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

Использование указателя на метод вместо виртуального метода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор http://www.cyberforum.ru/cpp/thread193991.html
Здравствуйте. Пишу компилятор pas->asm на с++ Может кто-то подскажет генератор конструкцый или что-то подобное: <переменная1>+<переменная2> mov...
C++ Дан файл F, содержащий координаты множества точек на плоскости. Переписать в файл G попарно точки, через которые проходят медианы этого множества. Помогите плз. Дан файл F, содержащий координаты множества точек на плоскости. Переписать в файл G попарно точки, через которые проходят медианы этого множества. Медианой множества, состоящего... http://www.cyberforum.ru/cpp/thread193967.html
C или C++(не холивар) C++
Здравствуйте. Участвую в различных олимпиадах по программированию, пишу обычно на C++, используя все его вкусности в виде STL, ООП, темплэйтов и проч. Накануне в двух задачах не уложился в...
x86 интерпретатор исходный код C++
кто-нибудь слышал про интерпретаторы x86? в инете нарыл только что в qemu, bochs есть встроенные интерпретаторы команд x86 процессора, но пока не докопался до них. Нужно самому написать такой...
C++ Крестики Нолики http://www.cyberforum.ru/cpp/thread193237.html
учу си месяц дали задачу... хелп ми плиз! Игра крестики нолики. Игра в крестики нолики вдется на квадратном поле 3*3. Играют двое. Начинают крестики. каждый из игроков, поочередно, ставит свой...
C++ Алгоритмы и программы по использованию указателей и динамических структур данных Здравствуйте! Помогите, пожалуйста, написать задачу. Вот текст:Дан указатель P0 на один из элементов непустого двусвязного списка. Вывести число N — количество элементов в списке, а также указатели... подробнее

Показать сообщение отдельно
alexzak
84 / 57 / 1
Регистрация: 07.08.2010
Сообщений: 185
21.11.2010, 09:23
Как вариант можешь передавать в Exec функтор:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
template <typename T, typename MemFun>
struct memfun_binder : std::unary_function<void, void>
{
    memfun_binder(T * obj, MemFun memfun)
        : obj_(obj)
        , memfun_(memfun)
    {}
 
    void operator()()
    {
        memfun_(obj_);
    }
 
    T      * obj_;
    MemFun & memfun_;
};
 
 
class Base {
    // ...
    template <typename Func>
    void Exec(Func tail_func) {
        // ...
        tail_func();
     }
};
 
template <typename T, typename MemFun>
memfun_binder<T, MemFun> memfun_bind(T * obj, MemFun memfun)
{
    return memfun_binder<T, MemFun>(obj, memfun);
}
 
class Derived : public Base {
    // ...
private:
    void tail1() { ... }
    void tail2() { ... }
 
public:
    void MyExec() {
        Exec(memfun_bind(this, std::mem_fun(&Derived::tail1)));
        Exec(memfun_bind(this, std::mem_fun(&Derived::tail2)));
    }
};
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru