Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компилятор https://www.cyberforum.ru/ cpp/ thread193991.html
Здравствуйте. Пишу компилятор pas->asm на с++ Может кто-то подскажет генератор конструкцый или что-то подобное: <переменная1>+<переменная2> mov...
C или C++(не холивар) C++
Здравствуйте. Участвую в различных олимпиадах по программированию, пишу обычно на C++, используя все его вкусности в виде STL, ООП, темплэйтов и проч. Накануне в двух задачах не уложился в...
x86 интерпретатор исходный код C++
кто-нибудь слышал про интерпретаторы x86? в инете нарыл только что в qemu, bochs есть встроенные интерпретаторы команд x86 процессора, но пока не докопался до них. Нужно самому написать такой...
C++ Крестики Нолики учу си месяц дали задачу... хелп ми плиз! Игра крестики нолики. Игра в крестики нолики вдется на квадратном поле 3*3. Играют двое. Начинают крестики. каждый из игроков, поочередно, ставит свой... https://www.cyberforum.ru/ cpp/ thread193237.html
C++ Алгоритмы и программы по использованию указателей и динамических структур данных https://www.cyberforum.ru/ cpp/ thread193137.html
Здравствуйте! Помогите, пожалуйста, написать задачу. Вот текст:Дан указатель P0 на один из элементов непустого двусвязного списка. Вывести число N — количество элементов в списке, а также указатели...
Функция rand C++
Решить задачу с использованием библиотечной функции rand,заголовочный файл stdlib.h Случайные числа в диапазоне от -32768 до 32768 можно получить с помощью следуйщей фунции int casual () { ...
C++ callback метода класса
Предыстория: нужно последовательно запускать несколько однотипных циклов большой степени вложенности, в теле которых вызывать разные функции. Т.к. вроде бы переписывать циклы (тем более громоздкие...
C++ кривой Безье написать проектную процедуру создания кривой Безье, Желательно в С++ Добавлено через 17 часов 16 минут помогайте срочно надо(( я не знаю как сделать .... ил дайте ссылку на информацию как ее... https://www.cyberforum.ru/ cpp/ thread192259.html
C++ Выявление такого же ай-пи/мак адреса https://www.cyberforum.ru/ cpp/ thread191681.html
Усем здрасти!) имеется необходимость написать приложение, которое, бы присваивало ip адрес сетевой карте и менять ее мак-адресс. Но самое интересное, что приложение должно извещать пользователя о...
C++ КНИГИ Подскажите харошую(лучшую) книгу по С++ ИЛИ Visual C++ Добавлено через 2 часа 45 минут Посрветуйте https://www.cyberforum.ru/ cpp/ thread191642.html
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
21.11.2010, 09:23 0

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

21.11.2010, 09:23. Просмотров 5496. Ответов 45
Метки (Все метки)

Ответ

Как вариант можешь передавать в 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2010, 09:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Переопределение виртуального метода
Нужно написать виртуальный метод в родительском классе , который находит площадь круга. Затем...

переопределение виртуального метода
Существует родитель-класс TEditField = class(TObject) protected procedure...

Ошибка создания виртуального метода?
Здравствуйте, хочу сделать так что бы программа(на андроид) рисовала по заданным координатам, но...

Реализовать перегрузку виртуального метода
В класе class1 реализован открытый виртуальный метод деление двух чисел &quot;a&quot; и &quot;b&quot;. Не внося...

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