Hilfe zu meiner Klasse ....



  • Hallöchen!

    Hätte mal eine kurze Frage. Bei dem Quellcode unten ,möchte ich eine Steuerung für einen Geldautomaten realisieren. Nun habe ich das Problem mit der Klasse Kontostand. Ich würde diese Gerne in das case Kontostand und somit in das UP void Kontostand integrieren , so dass beim aufruf von kontostand auch die Klasse benutzt wird.
    wenn ich die Klasse alleine Aufbaue, in einem neuen Programm , funktioniert diese einwandfrei und eben in dem Bankautomaten Programm nicht mehr. Bekomme dann folgende Fehlermeldung:

    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'neu'
    warning C4551: Dem Funktionsaufruf fehlt die Argumentliste
    error C2065: 'neu' : nichtdeklarierter Bezeichner
    error C2228: Der linke Teil von '.GetKontostand' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.

    Geht das überhaupt, das ich eine Klasse von einem case aufrufen lasse ?

    Danke schon mal ... vielleicht fällt jemandem ja mein Fehler ins Auge.
    Bin ja noch am Anfang.....

    #include <iostream>
    #include "geld.hpp"
    
    using namespace std;
    
    int menue();
    void Auszahlung();
    void Kontostand();  //Prototypen
    void Geldkarte();
    
    class Kontostand
    {
    public:
    	Kontostand() {}
    	~Kontostand() {}
    
    	int GetKontostand();
    
    private:
    
    	int itsKonto;
    };
    
    int Kontostand::GetKontostand()
    {
    
    	itsKonto = 1000;
    	cout <<itsKonto;
    	return itsKonto;
    }
    
    //******Hauptprogramm von Bankautomat***************
    
    int main()
    
    {
    
    	cout <<"\t*******Willkommen*******\n\n\n";
    	cout <<"Bitte fueren sie ihre Karte ein: \n";
    	cout <<"Vielen Dank\n\n\n";
    
    	bool exit = false;
    	for(;;) //Endlosschleife
    	{
    		int choice = menue();
    		switch (choice)
    		{
    		case (1): Kontostand();
    			break;
    		case (2): Auszahlung();
    			break;
    		case(3): Geldkarte();
    			break;
    		case (4): exit = true ;
    			break;
    		default: cout <<"Bitte erneut waehlen!\n";
    			break;
    		}
    
    		if(exit)
    			break;
    	}
    
    	return 0;
    }
    
    //******Unterprogramme**********
    
    void Auszahlung()
    
    {
    	int betrag,pin;
    	int Kontonummer = 3214745;
    	int PIN = 4317;
    	cout <<"Bitte waehlen sie eine Betrag <= 100 Euro\n";
    	cin >>betrag;
    
    	if (betrag <=100)
    	{
    		cout <<"\tBitte geben sie ihren PIN ein: \n";
    		cin >>pin;
    
    	}
    
    		if ( pin == PIN )
    		{
    			cout <<"Einen Moment bitte, der Betrag von " <<betrag<< "Euro wird ausgegeben\n";
    		}
    }
    
    void Kontostand()
    {
    Kontostand neu;
    
    cout <<"Ihr Kontostand betraegt : " <<neu.GetKontostand() << endl;
    }
    void Geldkarte()
    {
    	cout <<"Leer\n";
    }
    
    int menue()
    {
    	int choice;
    	cout <<"\t*********MENUE*********\n\n";
    	cout <<"\n (1)Kontostand\n (2)Auszahlung\n (3)Geldkarte\n (4)Beenden\n";
    	cin >> choice;
    	return choice;
    }
    


  • Du hast eine Klasse und eine Funktion, welche den selben Namen tragen. Ändere mal eines von beiden ab oder benutze Namensbereiche.



  • Devender schrieb:

    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'neu'
    warning C4551: Dem Funktionsaufruf fehlt die Argumentliste
    error C2065: 'neu' : nichtdeklarierter Bezeichner
    error C2228: Der linke Teil von '.GetKontostand' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.

    ich füchte, das kann so nix werden.

    du mußt deutlich mehr klammern setzen.
    zum beispiel bei

    bool exit = ((false));
    

    und bei

    case ((1)): (Kontostand());
    aber auch (und das ist ganz wesentlich) bei
    [cpp]	return (0);
    

    vielleicht auch bei

    int betrag,pin;
    	int Kontonummer = 3214745;
    	int PIN = (((4317)));
    

    um zu betonen, daß PIN neu ist und nix mit pin zu tun hat.
    nett würde ich klammern auch bei

    void Geldkarte()
    {
    	(cout <<"Leer\n");
    }
    

    finden.

    wie war die frage nochmal?



  • verarsch nicht immer die leute!!!!!!



  • *rofl* sag volkard hast du zu lange AutoLISP programmiert? ^^ 😉



  • Hey super , der Tip!
    die Funktion hab ich jetzt geändert und jetzt läufts... und läuft und läuft.....
    *Schade das einem so was der Kompiler nicht direkt sagen kann.

    Ich wünsch euch noch ein wunderschönes Wochenende !!!! 🙂 🙂 🤡

    bis demnächst...Dirk

    PS: Wenn das Programm mal fertig ist , kann ich das hier online stellen ?


Anmelden zum Antworten