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

Абстракция вызова функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как использовать перегруженный оператор [ ], если дан не сам класс, а указатель на него? http://www.cyberforum.ru/cpp-beginners/thread960880.html
Это указатель на класс figure *f Это перегрузка оператора void figure::operator (int i) { cout << "(" << massiv.x << "," << massiv.y << ")" << endl; } В нужный момент вызываю оператор, но...
C++ Масив через рекурсию В упорядоченном массиве целых чисел ai, i = 1 ... n найти номер элемента "c" методом бинарного поиска, используя очевидное соотношение: если c<= an/2, тогда c є1...аn/2] , иначе c єn/2+1...an] .... http://www.cyberforum.ru/cpp-beginners/thread960854.html
Перегруженные шаблоны C++
Написать перегруженные шаблоны для решения уравнения: ax^2+bx+c=0
C++ Перегруженные функции
Написать перегруженную функцию, которая возвращает площадь квадрата, прямоугольника, треугольника и круга. Считать, что для вычисления площадей фигур заданы целые величины длин сторон, а для круга –...
C++ Создание перегруженных функций http://www.cyberforum.ru/cpp-beginners/thread960846.html
Написать перегруженную функцию, которая возвращает сумму двух целых чисел, трех целых чисел, двух слов
C++ Двухмерний Масив char Как на с++ описать динамический масив символов в таблицу? подробнее

Показать сообщение отдельно
Melg
538 / 159 / 64
Регистрация: 23.09.2013
Сообщений: 314
24.09.2013, 00:23  [ТС]
Jupiter, Изначально не стал приводить пример кода именно потому-что реализация может в значительной степени повлиять на него, а он в свою очередь - сильно ограничит реализацию. Что-бы был понятен смысл - сферический пример:
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
 
#include "delegate.h"
void Foo() {/*...*/;}
int Foo1(double &parameter) {/*...*/;}
class Dummy {
public:
    char* Method(float val){/*...*/;}
};
 
class DummyHandler {
public:
    void HandleDummyMethod(char *return_value) {/*...*/;}
};
 
void Foo1Handler(int return_value) {/*...*/;}
 
int main(int argc, char **argv) {
    Delegate delegate;
 
    delegate.RegisterFunction(&Foo);
    delegate.CallFunction();
 
    double parameter = 234.45d;
    delegate.RegisertFunction(&Foo1,&Foo1Handler,parameter);
    delegate.CallFunction();
 
    Dummy dummy;
    DummyHandler dummy_handler;
    float some_val = 456.324f;
    delegate.RegisterFunction(&dummy,&Dummy::Method,
                                        &dummy_handler,&DummyHandler::HandleDummyMethod,
                                        some_val);
    delegate.CallFunction();
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru