Zeiger : Fehlermeldung: Ausdruck übernimmt keine Funktion die 2 Argumente übernimmt



  • Hi, ich lerne gerade C++ mittels des Buches "C++ für Spieleprogrammierer" von Heiko Kalista
    Nun bin ich beim Thema Zeiger angekommen. Ich hab einen vorgefertigten Code übertragen und wollte ihn noch damit erweitern die Punktzahl mit dem Lvel zu multiplizieren. Doch irgendwie will das nicht ganz funktionieren.

    Als Fehlermeldung springt immer heraus:

    .\möp.cpp(47) : error C2064: Ausdruck ergibt keine Funktion, die 2 Argumente übernimmt

    //c++ für Spieleprogrammierer
    //Listing 6.5
    //Anwendung von Zeigern
    //
    #include <iostream>
    
    using namespace std;
    
    //Prototypen
    //
    void BerechnePunkte (int *pPunkte, int Bonus);
    void Level (int *pPunkte, int Level);
    
    //Hauptprogramm
    //
    int main()
    {
    	//Variablen
    	//
    	int Punkte = 500;
    	int Bonus = 150;
    	int Level = 2;
    
    	cout << "Welcher Level: ";
    	cin >> Level;
    
    	//Punkte vor dem Funktionsaufruf
    	cout << " Punkte vor dem Funktionsaufruf: ";
    	cout << Punkte << endl;
    
    	/*Es wird die Funktion "BerechnePunkte" aufgerufen,
    	der als Parameter die ADRESSE der Variablen
    	"Punkte" übergeben wird sowie der Wert der 
    	Variblen "Bonus" */
    	//
    	BerechnePunkte (&Punkte, Bonus);
    
    	//Punkte nach dem Funktionsaufruf ausgeben
    	cout << "punkte nach dem Funktionsaufruf: ";
    	cout << Punkte << endl;
    
    	// Punkte noch mit dem Level multiplizieren
    	//
    	Level (&Punkte, Level);
    
    	cout << "Punkte zu guter Letzt: ";
    	cout << Punkte << endl;
    
    	return 0;
    }
    
    //BerechnePunkte
    //
    //Aufgabe: Bonus zu den Punkten hinzuzählen
    //
    void BerechnePunkte (int *pPunkte, int Bonus)
    {
    	//Mittels Indierektion die Variable Punkte ändern
    	// deren Adresse als Funktionsparameter übergeben wurde
    	//
    	*pPunkte += Bonus;
    
    }// Berechne Punkte
    
    //Level
    //
    //Aufgabe: Soll die Punkte mit dem aktuellen Level multiplizieren
    //
    void Level (int *pPunkte, int Level)
    {
    	*pPunkte *= Level;
    
    }//Level
    


  • deine funktion Level heißt genau wie die variable Level -> das kann nicht gutgehen



  • Stimmt. Ist mir gar nicht aufgefallen.
    Danke


Anmelden zum Antworten