selbstprogrammierter rechner funktioniert nicht



  • Bei einer Einleitung in C++ kam die Aufgabe mithilfe einer klasse einen Taschenrechner zu erstellen, welcher 2 Zahlen addiert, subtrahiert, multipliziert oder dividiert.Dazu habe ich diese Klasse erstellt:

    class taschenrechner {
    public:
    
    	int lösung;
    	int a;            //erste Zahl
    	char b;           //Rechenoperator
    	int c;            //zweite Zahl
    
    	void rechnen(int a, char b, int c)    //Funktion zur Berechnung
    	{
    		if (b = '+')
    		{
    			lösung = a + c;
    		}
    		if (b = '-')
    		{
    			lösung = a - c;
    		}
    		if (b = '*')
    		{
    			lösung = a * c;
    		}
    		if (b = '/')
    		{
    			lösung = a / c;
    		}
    
    	}
    };
    

    Nun habe ich versucht es auszugeben:

    #include <iostream>
    using namespace std;
    #include "taschenrechner.h"
    
    int main()
    {
    	taschenrechner tr;
    	cout << "Geben Sie die auszuführende Rechenoperation ein:";
    	cin >> tr.a;
    	cin >> tr.b;
    	cin >> tr.c;
    	tr.rechnen(tr.a, tr.b, tr.c);
    	cout << "Ihre Lösung ist:" << tr.lösung;
    	return 0;
    }
    

    Mein Problem ist, dass die if überprüfung von b in tr.rechnen nicht funktioniert.
    Meine Frage wäre nun, was ich dort falsch gemacht habe.



  • Hi,

    "funktioniert nicht" ist keine schöne Fehlerbeschreibung 😉

    Aber schau dir mal den Unterschied an, wie man einer Variable Werte zuweist und wie man sie wieder vergleicht.



  • Hallo,

    schau dir den Unterschied zwischen = und == an. Was machen die Zeilen 12, 16, 20 und 24 also in Wirklichkeit?
    Ferner musst du a, b und c nicht als Parameter übergeben, denn auf diese kannst du ohnehin zugreifen, da rechnen eine Methode (eine Member-Funktion) ist.

    LG



  • Vielen Dank für eure Hilfe. Jestzt funktioniert es problemlos. 🙂



  • Toll


  • Mod

    nq30 schrieb:

    (Bitte "[gelöst]" an den Titel anhängen)

    Bitte nicht jeden Thread mit falschen oder unnötigen Kommentaren versehen!



  • Warum speicherst du die Werte in Membervariablen, um diese dann an die Memberfunktion als Parameter zu übergeben?


Log in to reply