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

Приведение указателя на функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Деление многочленов(полиномов). доделать класс http://www.cyberforum.ru/cpp-beginners/thread328191.html
Суть задания - сделать класс-полином со основными арифметическими операциями между многочленами. Сложение, вычитание и умножение я сделал, а вот с делением никак не могу сообразить, по какому...
C++ Как сохранить текущее положение курсора в файле? как сохранить текущее положение курсора в файле , а затем в дальнейшем поставить курсор на это место?? http://www.cyberforum.ru/cpp-beginners/thread328189.html
C++ Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С)
Дан текстовый файл, состоящий из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Найти количество положительных чисел и их среднее арифметическое и вывести на...
Строки и символы. C++ C++
1.Дана строка символов до точки.Группы символов в ней между пробелами считаются словами.Определить, сколько слов содержит хотя бы одну букву "е". 2.Даны две строки символов STR1 и STR2.Вывести на...
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread328186.html
Дана матрица A(n,m). Найти сумму тех элементов, которые являются квадратами некоторого числа m.
C++ Одномерный массив C++ 1.Дан одномерный массив В состоящий из 10 элементов. Найти максимальный и минимальный элементы данного массива. 2.Написать функцию, в которой подсчитывается сумма элементов одномерного массива MAS... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1956 / 1449 / 115
Регистрация: 29.05.2011
Сообщений: 3,007
30.06.2011, 19:22
Selendis, я конечно не знаю в чём состоит задача, но может быть подойдёт вариант с шаблонами и объектами-функциями? Вот, схематично, идея:

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
46
47
48
49
50
51
#include <iostream>
 
using namespace std;
 
// функция передаётся через шаблон
template <typename F>
void g( F f)
{
    cout << "I'm g\n";
    int r = f(123);
    cout << "r=" << r << endl;
}
 
class A
{
public:
  int f1(int i)
  {
    cout << "I'm f1("<< i <<") from A\n";
    return 456;
  };
};
 
// адаптер в виде объекта-функции
class FuncObj
{
public:
    FuncObj(A const &a) : aobj(a) {}
    int operator() (int i)
    {
        return aobj.f1(i);
    }
private:
    FuncObj();
    A aobj;
};
 
// обычная функция
int simple(int i)
{
    cout << "I'm simple(" << i << ")\n";
    return 789;
}
 
int main()
{
    A a;
    g(FuncObj(a));
    g(simple);
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru