'* w' cannot be used as a function|. Problem dla począkującego :(
Ostatnio zmodyfikowano 2014-03-11 22:36
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 #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. |
|
Monika90 |
» 2014-03-11 21:28:33 double * w; * w = mxm( a );
w to jest wskaźnik do double, a nie do funkcji, można zrobić po prostu tak: |
|
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. |
|
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. |
|
Monika90 |
» 2014-03-11 21:46:13 Dlaczego? Przecież parametr wsk_f funkcji roznica jest wskaźnikiem na funkcję. |
|
michal11 |
» 2014-03-11 22:36:09 OK, teraz doczytałem dokładnie, zmylił mnie ten *w. |
|
« 1 » |