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

Указатель на функцию - C++

Восстановить пароль Регистрация
 
underwaterspace
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 47
20.02.2013, 20:19     Указатель на функцию #1
Нужно написать код, чтобы в нем был массив их трех указателей на функции
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
#include<iostream>
#include<locale>
#include<cmath>
using namespace std;
double calculate(double,double,double (*p)(double,double));
double add(double,double);
double dd(double,double);
double d(double,double);
int main()
{
    setlocale(LC_CTYPE,"russian");
    double (*pa[3])(double,double);
    pa[3]=(add,dd,d);
    double a,b;
    int i;
    cout<<"Введите пару чисел:\n";
    while(cin>>a>>b)
    {
        for(i=0;i<3;i++)
            cout<<"Результат "<<i+1<<": "<<calculate(a,b,pa[i])<<endl;
        cout<<"Введите пару чисел (для выхода введите q):\n";
    }
    system("PAUSE");
    return 0;
}
double calculate(double x,double y,double (*fun)(double,double))
{
    double q;
    q=fun(x,y);
    return q;
}
double add(double f,double g)
{
    return f+g;
}
double dd(double f,double g)
{
    return f*g;
}
double d(double f,double g)
{
    return f*f*g;
}
программа ругается на q=fun(x,y);
Пожалуйста, подскажите в чем дело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2013, 20:19     Указатель на функцию
Посмотрите здесь:

Указатель на указатель на функцию C++
Как передать указатель на функцию в функцию C++
C++ В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
Зачем передавать в функцию X указатель на callback функцию, если последняя ВНЕШНЯЯ и вызовется БЕЗО ВСЯКОГО УКАЗАТЕЛЯ? C++
Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2372 / 1594 / 190
Регистрация: 08.06.2007
Сообщений: 6,362
Записей в блоге: 4
20.02.2013, 20:31     Указатель на функцию #2
13 строка вашего кода
C++
1
pa[3]=(add,dd,d);
Я объясняю вам, что вы потребовали от компьютера. Присвоить четвертому элементу массива pa указатель на функцию d. Вы наверняка хотели не этого, но здесь не только ошибка, здесь криминал. Массив содержит всего три элемента, а вы присвоили четвертому. Дальше программу можно не смотреть.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
20.02.2013, 20:32     Указатель на функцию #3
C++
1
double (*pa[3])(double,double) = {add,dd,d};
underwaterspace
2 / 2 / 0
Регистрация: 29.01.2013
Сообщений: 47
20.02.2013, 20:47  [ТС]     Указатель на функцию #4
palva, Schizorb, Мда, не заметил, проблема была в этом, спасибо большое. Извините за глупый вопрос.
Yandex
Объявления
20.02.2013, 20:47     Указатель на функцию
Ответ Создать тему
Опции темы

Текущее время: 14:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru