Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

21

24.07.2009, 16:14

Nun gut, ich werde das mit dem Prinzip von David_pb machen.

Edit:
Ich bekomme einen Fehler wenn ich eine Funktion in einer Funktion aufrufe.
Irgendwie muss das eig. funktionieren.

C-/C++-Quelltext

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
#include <iostream>
using namespace std;

// Prototypen

void Station (int Zahl, void Berechnen (int Zahl));
void Berechnen (int Zahl);

int main ()
{
    int Zahl = 134;

    Station (Zahl, Berechnen (Zahl));

    cin.get();
    return 0;
}

void Station (int Zahl, void Berechnen (int Zahl))
{
    cout << "Station" << endl;
}

void Berechnen (int Zahl)
{
    Zahl += 100;
    cout << Zahl << endl;
}


Fehler:

Quellcode

1
error C2664: 'Station': Konvertierung des Parameters 2 von 'void' in 'void (__cdecl *)(int)' nicht möglich

(Sorry wenn das jetzt im falschem Thread ist.)
Was muss ich denn ändern?

Danke im Voraus :D[/code]
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

22

24.07.2009, 16:23

Du rufst die Funktion ja garnicht in der Funktion auf...

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

23

24.07.2009, 16:30

Ich habe aber wirklich keinen Plan wie das funktioniert!
Das sollte innerhalb der Parameterliste funktionieren, also das der Benutzer der Funktion nur die Funktion in der Funktion eingeben muss, und schon ruft er die richtige überladene Funktion auf. :)

Danke im Voraus
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

24

24.07.2009, 16:33

So?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main ()
{
    int Zahl = 134;

    Station (Zahl, &Berechnen);

    cin.get();
    return 0;
} 

void Station (int Zahl, void (*Berechnen)(int))
{
    cout << "Station" << Berechnen(Zahl) << endl;
} 

void Berechnen (int Zahl)
{
    Zahl += 100;
    cout << Zahl << endl;
}

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

25

24.07.2009, 16:44

So jetzt mach ich was in der Parameterliste falsch.
Fehler:

Quellcode

1
error C2679: Binärer Operator '<<': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'void' akzeptiert (oder keine geeignete Konvertierung möglich)

Der Prototyp von Station sieht genau so aus, wie der Funktionkopf(nur ohne Semikolon).
Muss Berechnen vlt. einen Wert zurückgeben?
Hoffe ich nerve nicht schon :?

Danke im Voraus


Edit: Der Fehler ist nicht in der Parameterliste sondern hier in der Gegend:

C-/C++-Quelltext

1
   cout << "Station" << Berechnen(Zahl) << endl;
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

26

24.07.2009, 17:15

Ja, hab übersehen das "Berechnen" ja garkein Wert zurück gibt...

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

27

25.07.2009, 09:54

Hmm jetzt kann ich das Programm wenigstens starten aber er gibt nur "Station" aus, jedoch nicht die berechnete Zahl!

Danke im Voraus
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

28

25.07.2009, 10:35

Wie sieht denn der aktuelle Code aus?

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

29

25.07.2009, 10:46

So:

C-/C++-Quelltext

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
#include <iostream>
using namespace std;

// Prototypen

void Station (int Zahl, void (*Berechnen) (int));
void Berechnen (int Zahl);

int main ()
{
    int Zahl = 134;

    Station (Zahl, &Berechnen);

    cin.get();
    return 0;
}

void Station (int Zahl, void (*Berechnen)(int))
{
    cout << "Station" << endl;
}

void Berechnen (int Zahl)
{
    Zahl += 100;
    cout << Zahl << endl;
}


Die main- und die beiden Funktionen habe ich von dir übernommen, die Prototypen habe ich dementsprechend abgeändert.
Pi mal Daumen = 18.84955592

30

25.07.2009, 10:52

Ja, wieso sollte dieser Quellcode die "berechnete Zahl" ausgeben?
Versuchs mal mit einem Funktionsaufruf ;)

Werbeanzeige