Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

'* w' cannot be used as a function|. Problem dla począkującego :(

Ostatnio zmodyfikowano 2014-03-11 22:36
Autor Wiadomość
gustawson
Temat założony przez niniejszego użytkownika
'* w' cannot be used as a function|. Problem dla począkującego :(
» 2014-03-11 21:23:28
Witam!

Mam taki o to program

C/C++
#include <iostream>
#include <math.h>

using namespace std;

double mxm( double n ) { return n * n; };



double roznica( double( * wsk_f )( double ), double a, double b )
{
    cout << wsk_f( a ) << endl;
    cout << wsk_f( b ) << endl;
   
    if( a - b < 0 ) return -( a - b );
    else return a - b;
   
};



int main()
{
   
    double a = 5.23;
    double b = 2.54;
    double * w;
    * w = mxm( a );
   
    roznica(( * w )(), a, b );
   
   
}

No i wyświetla bład
C:\Users\Komputer\Documents\programowania cpp\zad 27 lista 1.cpp|29|error: '* w' cannot be used as a function|

No i nie mam pojęcia dlaczego krzyczy mi o błędzie.
Proszę o pomoc :(


Tutaj polecenie do tego zadania:

Zadanie 27.
Zaprojektować i zaimplementować funkcję roznica, która przyjmuje trzy
argumenty:
• wskaźnik wsk_f na funkcję, która przyjmuje jako argument wartość
rzeczywistą i która zwraca wartość rzeczywistą;
• dwie liczby rzeczywiste a i b.
i zwraca wartość rzeczywistą.
Funkcja powinna:
• obliczyć wartości funkcji wsk_f dla argumentów a i b;
*  wartość bezwzględną różnicy wartości funkcji dla argumentów
a i b.
P-106131
Monika90
» 2014-03-11 21:28:33
C/C++
double * w;
* w = mxm( a ); //dereferencja niezainicjalizowanego wskaźnika = NIEZDEFINIOWANE ZACHOWANIE

w to jest wskaźnik do double, a nie do funkcji, można zrobić po prostu tak:
C/C++
roznica( mxm, a, b );
P-106132
gustawson
Temat założony przez niniejszego użytkownika
» 2014-03-11 21:35:19
No i teraz wszystko rozumiem :)

Dzięki wielkie za szybką pomoc.
P-106134
michal11
» 2014-03-11 21:35:41
@Monika90

Wydaje mi się, że w tym zadaniu chodzi o zrobienie wskaźnika na funkcję, czyli twoje rozwiązanie nie jest do końca poprawne.
P-106135
Monika90
» 2014-03-11 21:46:13
Dlaczego? Przecież parametr wsk_f funkcji roznica jest wskaźnikiem na funkcję.
P-106136
michal11
» 2014-03-11 22:36:09
OK, teraz doczytałem dokładnie, zmylił mnie ten *w.
P-106141
« 1 »
  Strona 1 z 1