error: parse error before `)' token



  • der anfang meiner .cpp-Datei, ich check den o.g. Fehler nicht...

    #include "spiel.h"
     #include "zugMensch.h"
     #include "zugRechner.h"
     #include <iostream>
    
     using namespace std;
    
     int Spiel::endlosschleife()
     {
     	while (1)
    	{	
    	spiel(int anzahlDerMuenzen);            // auf diese Zeile bezieht sich der Fehler!
    	}
     }
    

    das gesamte main-file (klassen sind alle definiert, andere code-schnipsel auf anfrage):

    #include <iostream>
    #include "spiel.h"
    #include "zugMensch.h"
    #include "zugRechner.h"
    
    using namespace std;
    
    int main (void)
    {
    	Spiel SPIEL;
    
    	int anzahlDerMuenzen;
    
    	cout << "Mit wievielen Muenzen fangen wir an?" << endl;
    	cin  >> anzahlDerMuenzen;
    
    	// while (1)
    	// { 
    	//	SPIEL.spiel(anzahlDerMuenzen);		// Ich brauche Referenz die auf Klasse zeigt
    	SPIEL.endlosschleife();
    	// }
    }
    

    Würd mich über nen hilfreichen Tipp freuen...

    thx, Tom



  • Du kannst keine Funktionsdeklaration innerhalb einer anderen Funktion machen.



  • Michael E. schrieb:

    Du kannst keine Funktionsdeklaration innerhalb einer anderen Funktion machen.

    doch, das geht. aber zur deklaration gehört auch ein rückgabetyp.

    und ein aufruf hat keinen typ dabei. also so:

    spiel(anzahlDerMuenzen);
    


  • Danke Volkard! Denke das Beispiel sollte Dir bekannt vorkommen... 😉

    Eine Frage noch zur Abbruchbedingung... das funzt so nicht wie beschrieben, da das Programm weiter läuft statt wenn alle Münzen alle sind zu terminieren bzw von vorn anzufangen. Ich möchte, dass er, sobald null Münzen auf dem Tisch liegen, das Programm bzw die Endlosschleife, in der das läuft, neu startet.
    Exit (1) wirft ihn ganz raus, return 0 beendet den Programmdurchlauf nicht.

    Hier der Code:

    anzahlDerMuenzen = anzahlDerMuenzen - zugmensch.zugMensch(anzahlDerMuenzen);
    
    	if (anzahlDerMuenzen == 0)
    		{
    		cout << "Du hast gewonnen..." << endl;
    		// return 0;
    		exit (1);
    		};
    

    Tom


Anmelden zum Antworten