Форум программистов, компьютерный форум 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; } В нужный момент вызываю оператор, но пишет, что он без побочного эффекта, и ничего не выводит f
C++ Масив через рекурсию В упорядоченном массиве целых чисел ai, i = 1 ... n найти номер элемента "c" методом бинарного поиска, используя очевидное соотношение: если c<= an/2, тогда c є1...аn/2] , иначе c єn/2+1...an] . Если элемент c отсутствует в массиве, то вывести соответствующее сообщение. Решить двумя способами с рекурсией и без нее.. спасибо! http://www.cyberforum.ru/cpp-beginners/thread960854.html
Перегруженные шаблоны C++
Написать перегруженные шаблоны для решения уравнения: ax^2+bx+c=0
C++ Перегруженные функции
Написать перегруженную функцию, которая возвращает площадь квадрата, прямоугольника, треугольника и круга. Считать, что для вычисления площадей фигур заданы целые величины длин сторон, а для круга – еще и pi =3.1415926
C++ Создание перегруженных функций http://www.cyberforum.ru/cpp-beginners/thread960846.html
Написать перегруженную функцию, которая возвращает сумму двух целых чисел, трех целых чисел, двух слов
C++ Двухмерний Масив char Как на с++ описать динамический масив символов в таблицу? подробнее

Показать сообщение отдельно
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
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;
}
 
Текущее время: 05:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru