ist meine .cpp richtig?



  • Ich muss eine Fahrzeug.cpp schreiben, welche die Fahrzeug.h includiert und genau wie in der Fahrzeug.h beschrieben funktioniert.
    Da ich ein Anfänger bin, möchte ich wissen ob ich bis jetzt richtig verstanden habe und die Codierung richtig ist, Sodass ich weiter machen kann.
    Es wäre Nett von euch, wenn ihr mir helft.
    Fahrzeug.h :

    #ifndef FAHRZEUG_H
    #define FAHRZEUG_H
    #include <string>
    #include <iostream>
    using namespace std;
    class Fahrzeug
    {
    public:
    /*
    Standardkonstruktor. Erstellt ein Fahrzeug mit den Werten:name=Standarfahrzeug,
    anzahlInsassenMaximal = 3, anzahlInsassenAktuell = 1
    */
    Fahrzeug();
    /*
    Erstellt ein Fahrzeug und übernimmt die gegebenen Parameter als Memebervariablen
    */
    Fahrzeug(string name, int anzahlInsassenMaximal, int anzahlInsassenAktuell);
    ~Fahrzeug();
    protected:
    string name; // Name des Fahrzeugs
    int anzahlInsassenMaximal; // Anzahl der Insassen, die Maximal in das Fahrzeug passen
    int anzahlInsassenAktuell; // Anzahl der Insassen, die aktuell im Auto sind
    public:
    /* Methode "
    int einsteigen(int anzahlEinsteiger);"
    erhöht "anzahlInsassenAktuell" um "anzahlEinsteiger";
    gibt 0 zurück, wenn genug Platz für die einsteigenden Insassen ist.
    Wenn die "anzahlEinsteiger" aufgrund des maximalen Platzes im Fahrzeug
    nicht mehr in das Fahrzeug passt, gibt die Methode "einsteigen" -1 zurück,
    schreibt auf die Konsole "Einsteigen nicht möglich, da zu wenig Platz im
    Fahrzeug!"
    und verändert die aktuelle Anzahl der Insassen des Fahrzeugs nicht.
    */
    int einsteigen(int anzahlEinsteiger);
    /* Methode "int aussteigen(int anzahlAussteiger);"
    verringert "anzahlInsassenAktuell" um "anzahlAussteiger";
    gibt 0 zurück, wenn mindestens so viele Insassen im Fahrzeug sind, wie
    aussteigen sollen.
    Diese Methode verhindert damit, dass mehr Insassen aussteigen, als tatsächlich
    im Fahrzeug sind.
    Somit ist gewährleistet, dass "anzahlInsassenAktuell" größer oder gleich 0 ist.
    Wenn weniger Insassen als "anzahlAussteiger" im Fahrzeug sind, gibt die Methode
    "aussteigen" -1 zurück,
    schreibt auf die Konsole "So viele Insassen sind nicht im Auto!"
    und verändert die aktuelle Anzahl der Insassen des Fahrzeugs nicht.
    */
    int aussteigen(int anzahlAussteiger);
    /*
    Diese Methode gibt die Werte ALLER der Membervariablen in einer verständlichen
    Form auf der Konsole aus.
    Z.B.: "Die aktuelle Anzahl der Insassen beträgt: <hier steht der Wert von
    anzahlInsassenAktuell>"
    */
    void printStatus();
    };
    #endif // !FAHRZEUG_H
    

    und

    Fahrzeug.cpp

    #include "Fahrzeug.h"
    #include <string>;
    
    using namespace std;
    
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
    string name = "StandardFahrzeug" ;
    int anzahlInsassenMaximal = 3;
    int anzahlInsassenAktuell =1;
    printStatus();
    }
    
    int einsteigen(int anzahlEinsteiger)
    {
    	int anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
    		if(anzahlInsassenAktuell>=0)
    			return 0;
    		else 
    		{
    			cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;
    			return -1;
    		}
    }
    int aussteigen(int anzahlAussteigen)
    {
    	int anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen ;
    	if (anzahlInsassenAktuell >=0)
    	{
    	if (anzahlAussteigen=anzahlInsassenAktuell)
    		return 0;
    	}
    	else 
    	{
    		cout << " So viele Insassen sind nicht im Auto! \n";
    		return -1;
    	}
    }
    void printStatus(int anzahlInsassenAktuell)
    {
    	cout << " Die aktuelle Anzahl der Insassen beträgt: " << anzahlInsassenAktuell;
    }
    


  • Nein


  • Mod

    #ifndef FAHRZEUG_H
    #define FAHRZEUG_H
    #include <string>
    #include <iostream>  // Wird in dieser Datei nicht benutzt
    using namespace std;  // Niemals im Header using namespace std benutzen!
    class Fahrzeug
    {
    public:
    Fahrzeug();  // Relativ unsinnig, da er nur unnütze Defaultparameter setzt. Wenn schon unnütze Defaultparameter, dann kann man sie ja auch gleich beim anderen Konstruktor als Defaultparameter der Funktion angeben
    Fahrzeug(string name, int anzahlInsassenMaximal, int anzahlInsassenAktuell);
    ~Fahrzeug(); // Total nutzlos
    protected:  // Protected wird von Anfängern fast immer falsch eingesetzt. So anscheinend auch hier. Aus welchem Grund sind diese Member protected?
    string name; 
    int anzahlInsassenMaximal; 
    int anzahlInsassenAktuell; 
    public:
    int einsteigen(int anzahlEinsteiger);
    int aussteigen(int anzahlAussteiger);
    void printStatus();
    };
    #endif // !FAHRZEUG_H
    

    und

    Fahrzeug.cpp

    #include "Fahrzeug.h"
    #include <string>;  // Wurde doch schon in Fahrzeug.h garantiert includiert.
    // Dafür kann man an dieser Stelle natürlich iostream einbinden, wenn man es denn braucht.
    
    using namespace std;  
    
    // Das passt überhaupt nicht zu der Beschreibung oben. Du schmeißt den Standardkonstruktor und den anderen zusammen. Das ist zwar tendenziell das, was ich dir empfohlen habe (Aber nicht so!), aber nicht so wie die Aufgabe es verlangt
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
    string name = "StandardFahrzeug" ;
    int anzahlInsassenMaximal = 3;
    int anzahlInsassenAktuell =1;
    printStatus();
    }
    
    // Die Signatur passt nicht. Guck noch einmal, wie man Klassenmethoden definiert.
    int einsteigen(int anzahlEinsteiger)
    {
            // Logik hier ist völlig falsch.
    	int anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
    		if(anzahlInsassenAktuell>=0)  // Ganz besonders an dieser Stelle.
    			return 0;
    		else 
    		{
    			cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;  // Es gehört sich eigentlich nicht, in einer Klasse, die nichts damit zu tun hat, Fehlerbehandlung zu machen. Aber das ist nun einmal leider die Aufgabe.
    			return -1;  // Und Fehlerwerte als Rückgabewert sind so etwas von 1950...
    		}
    }
    
    // Siehe oben.
    int aussteigen(int anzahlAussteigen)
    {
    	int anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen ;
    	if (anzahlInsassenAktuell >=0)
    	{
    	if (anzahlAussteigen=anzahlInsassenAktuell) // Dies ist kein Vergleich. Außerdem logisch völlig falsch.
    		return 0;
    	}
    	else // Passt auch nicht zur Logik der Vorgabe
    	{
    		cout << " So viele Insassen sind nicht im Auto! \n";
    		return -1;
    	}
    }
    // Völlig falsch. Schon die Funktionssignatur passt nicht.
    void printStatus(int anzahlInsassenAktuell)
    {
    	cout << " Die aktuelle Anzahl der Insassen beträgt: " << anzahlInsassenAktuell;
    }
    
    // Den unnützen Destruktor hast du nun gar nicht definiert. Was ja auch korrekt wäre, aber da er laut Vorgabe der Aufgabenstellung deklariert wurde, muss er dann auch definiert werden, sonst funktioniert das Programm nicht.
    

    Fazit:
    1. Die Aufgabe lehrt völlig veraltete Prinzipien -> Schlechter Lehrer
    2. Du hast die Aufgabe vollkommen falsch umgesetzt, gar nichts ist richtig. Vermutlich ebenfalls ein Symptom des schlechten Lehrers.



  • Die .h Datei kann ich nicht ändern aber die .cpp habe ich versucht zu korrigieren.
    Leider habe ich einige deiner Kommentare nicht verstanden. 😞

    Fahrzeug :: Fahrzeug()
    {
    string name = "StandardFahrzeug" ;
    int anzahlInsassenMaximal = 3;
    int anzahlInsassenAktuell =1;
    }
    Fahrzeug::Fahrzeug (string name, int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    { 
    //hier bin ich nicht sicher, was ich schreiben soll! (-_-)
    }
    
    int einsteigen(int anzahlInsassenAktuell, int anzahlEinsteiger)
    {
    	anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
    		if(0<=anzahlInsassenAktuell<=3)
    			return 0;
    		else 
    		{
    			cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;
    			return -1;
    		}
    }
    int aussteigen(int anzahlInsassenAktuell, int anzahlAussteigen)
    {
    	anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen ;
    	if (anzahlInsassenAktuell >=0)
    	{
    	if (0<=anzahlAussteigen<=anzahlInsassenAktuell)
    		return 0;
    	}
    	else 
    	{
    		cout << " So viele Insassen sind nicht im Auto! \n";
    		return -1;
    	}
    }
    void printStatus() //meiner großesten Problem!! gibt es vllt eine Seite, wo ich darüber lesen kann?
    


  • ryhne schrieb:

    void printStatus() //meiner großesten Problem!! gibt es vllt eine Seite, wo ich darüber lesen kann?

    Am ehesten in einem Buch.

    Aber vielleicht hilft ja ein Beispiel:

    #include <iostream>
    
    struct vier {
        vier()
        {
            m_wert = 4;
        }
        vier(int w)
        {
            m_wert = w;
        }
        void drucke()
        {
            std::cout << m_wert << '\n';
        }
    
        int m_wert;
    };
    
    int main() {
        vier v1;
        vier v2(5);
        v1.drucke();
        v2.drucke();
    }
    

    Da sind eigentlich schon die wichtigsten Dinge drin.
    Insbesondere in Zeilen 6 und 10 siehst Du, dass da keine neue Variable deklariert wird, sondern ich m_wert aus Zeile 17 meine.



  • ryhne schrieb:

    if(0<=anzahlInsassenAktuell<=3)
    

    Achtung!

    Probiere doch mal verschiedene Werte von anzahlInsassenAktuell durch. Du wirst dich wundern, was passiert.

    Übersetze bitte IMMER mit Warnungen! Da sollte sowas wie

    warning: comparisons like ‘X<=Y<=Z’ do not have their mathematical meaning

    herauskommen.

    0<=anzahlInsassenAktuell ergibt einen bool, diesen vergleichst du dann erneut. Das ist Murx. Du musst 2 einzelne Tests machen und die mit && verbinden.



  • Danke für eure Antworten!
    hier was ich bis jetzt geschrieben habe:

    #include "Fahrzeug.h"
    #include <string>;
    
    using namespace std;
    
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
        string name = "StandardFahrzeug" ;
        int anzahlInsassenMaximal = 3;
        int anzahlInsassenAktuell =1;
        printStatus();
    }
    Fahrzeug (int A)
    {
    //muss ich hier nur Variablen schreiben, die ich oben genannt habe? (anzahlInsassenAktuell)oder muss ich die Einsteiger und Aussteiger noch dazu addieren? :confused:  :confused: 
        int anzahlInsassenAktuell=A;
    
    }
    
    int einsteigen(int anzahlEinsteiger)
    {
        int anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
        if(anzahlInsassenAktuell<=3) && (anzahlInsassenAktuell>=0)
            return 0;
        else
        {
            cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;
            return -1;
        }
    }
    int aussteigen(int anzahlAussteigen)
    {
        int anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen ;
        if (anzahlInsassenAktuell >=0)
        {
            if (anzahlAussteigen<=anzahlInsassenAktuell) && (anzahlAussteigen>=0)
                return 0;
        }
        else
        {
            cout << " So viele Insassen sind nicht im Auto! \n";
            return -1;
        }
    }
    void printStatus()
    {
    //Gleiche Frage wie oben! muss ich hier Einsteiger und Aussteiger auch addieren? :confused: 
        cout << " Die aktuelle Anzahl der Insassen beträgt: " << anzahlInsassenAktuell << "\n";
        cout << " Die maximale Anzahl der Insassen für eine Standardfahrzeug beträgt: " << anzahlInsassenMaximal << "\n";
    
    }
    


  • ryhne schrieb:

    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
        string name = "StandardFahrzeug" ;
        int anzahlInsassenMaximal = 3;
        int anzahlInsassenAktuell =1;
        printStatus();
    }
    

    Was ist das für ein Blödsinn?

    Es gibt dort bei dir 3 Variablen mit dem Namen name : die Member-Variable, den Parameter und noch die lokale Variable! Überleg dir mal, was du da tust!

    Ansonsten: du musst den Code auch mal compilieren, der Compiler wird einiges zu meckern haben.



  • wob schrieb:

    Ansonsten: du musst den Code auch mal compilieren, der Compiler wird einiges zu meckern haben.

    👍

    @rhyne
    Die Forumsteilnehmer hier sind kein online-fehlerbehebender-Compiler!
    Besorg Dir einen Compiler und schau Dir dessen Ausgaben an.



  • Die Forumsteilnehmer hier sind kein online-fehlerbehebender-Compiler!
    Besorg Dir einen Compiler und schau Dir dessen Ausgaben an.

    @Furble Wurble

    Ich bin ein Mac-user und ist schwer einen Windows-Rechner zu finden.
    Ich habe meinen letzten Code auf einem Blank Page geschrieben, deswegen gab es im meinen letzten Code Fehler, die ich nicht bemerkt habe.
    Ich glaube auch nicht, dass die Forumsteilnehmer "online-fehlerbehebender-Compiler" sind!!



  • ryhne schrieb:

    Ich bin ein Mac-user und ist schwer einen Windows-Rechner zu finden.

    Gibts für einen Mac keinen Compiler?



  • Ich hab' den Code jetzt nur schnell überflogen, aber ich sehe da auf den 1. Blick mal nix wofür man Windows brauchen würde 😕
    Wieso nimmst du nicht einfach eine Entwicklungsumgebung die auch unter OS X läuft? Sollte ja einige geben.

    Soweit ich weiss ist XCode im Moment gratis - das wäre das was ich als 1. probieren würde wenn ich auf nem Mac entwickeln müsste.

    Sonst gibt es z.B. noch eine ältere Version von Code::Blocks - und bestimmt noch viele andere IDEs die auch unter OS X laufen.



  • außerdem gibt es auch diverse online compiler.
    für nette kleine und forumsgerechte codestückchen sollte man sowas eigentlich immer verwenden. z.b. http://rextester.com/l/cpp_online_compiler_clang



  • hier, weil ich lieb bin, kannst du, @OP, die fehler deines codes laut compiler sehen.

    #ifndef FAHRZEUG_H
    #define FAHRZEUG_H
    #include <string>
    #include <iostream>
    using namespace std;
    class Fahrzeug
    {
    public:
    /*
    Standardkonstruktor. Erstellt ein Fahrzeug mit den Werten:name=Standarfahrzeug,
    anzahlInsassenMaximal = 3, anzahlInsassenAktuell = 1
    */
    Fahrzeug();
    /*
    Erstellt ein Fahrzeug und übernimmt die gegebenen Parameter als Memebervariablen
    */
    Fahrzeug(string name, int anzahlInsassenMaximal, int anzahlInsassenAktuell);
    ~Fahrzeug();
    protected:
    string name; // Name des Fahrzeugs
    int anzahlInsassenMaximal; // Anzahl der Insassen, die Maximal in das Fahrzeug passen
    int anzahlInsassenAktuell; // Anzahl der Insassen, die aktuell im Auto sind
    public:
    /* Methode "
    int einsteigen(int anzahlEinsteiger);"
    erhöht "anzahlInsassenAktuell" um "anzahlEinsteiger";
    gibt 0 zurück, wenn genug Platz für die einsteigenden Insassen ist.
    Wenn die "anzahlEinsteiger" aufgrund des maximalen Platzes im Fahrzeug
    nicht mehr in das Fahrzeug passt, gibt die Methode "einsteigen" -1 zurück,
    schreibt auf die Konsole "Einsteigen nicht möglich, da zu wenig Platz im
    Fahrzeug!"
    und verändert die aktuelle Anzahl der Insassen des Fahrzeugs nicht.
    */
    int einsteigen(int anzahlEinsteiger);
    /* Methode "int aussteigen(int anzahlAussteiger);"
    verringert "anzahlInsassenAktuell" um "anzahlAussteiger";
    gibt 0 zurück, wenn mindestens so viele Insassen im Fahrzeug sind, wie
    aussteigen sollen.
    Diese Methode verhindert damit, dass mehr Insassen aussteigen, als tatsächlich
    im Fahrzeug sind.
    Somit ist gewährleistet, dass "anzahlInsassenAktuell" größer oder gleich 0 ist.
    Wenn weniger Insassen als "anzahlAussteiger" im Fahrzeug sind, gibt die Methode
    "aussteigen" -1 zurück,
    schreibt auf die Konsole "So viele Insassen sind nicht im Auto!"
    und verändert die aktuelle Anzahl der Insassen des Fahrzeugs nicht.
    */
    int aussteigen(int anzahlAussteiger);
    /*
    Diese Methode gibt die Werte ALLER der Membervariablen in einer verständlichen
    Form auf der Konsole aus.
    Z.B.: "Die aktuelle Anzahl der Insassen beträgt: <hier steht der Wert von
    anzahlInsassenAktuell>"
    */
    void printStatus();
    };
    #endif // !FAHRZEUG_H
    
    #include <string>
    
    using namespace std;
    
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
        string name = "StandardFahrzeug" ;
        int anzahlInsassenMaximal = 3;
        int anzahlInsassenAktuell =1;
        printStatus();
    }
    Fahrzeug (int A)
    {
    //muss ich hier nur Variablen schreiben, die ich oben genannt habe? (anzahlInsassenAktuell)oder muss ich die Einsteiger und Aussteiger noch dazu addieren? :confused:  :confused:
        int anzahlInsassenAktuell=A;
    
    }
    
    int einsteigen(int anzahlEinsteiger)
    {
        int anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
        if(anzahlInsassenAktuell<=3) && (anzahlInsassenAktuell>=0)
            return 0;
        else
        {
            cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;
            return -1;
        }
    }
    int aussteigen(int anzahlAussteigen)
    {
        int anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen ;
        if (anzahlInsassenAktuell >=0)
        {
            if (anzahlAussteigen<=anzahlInsassenAktuell) && (anzahlAussteigen>=0)
                return 0;
        }
        else
        {
            cout << " So viele Insassen sind nicht im Auto! \n";
            return -1;
        }
    }
    void printStatus()
    {
    //Gleiche Frage wie oben! muss ich hier Einsteiger und Aussteiger auch addieren? :confused:
        cout << " Die aktuelle Anzahl der Insassen beträgt: " << anzahlInsassenAktuell << "\n";
        cout << " Die maximale Anzahl der Insassen für eine Standardfahrzeug beträgt: " << anzahlInsassenMaximal << "\n";
    
    }
    
    int main () {}
    

    ausgabe:

    Error(s):
    
    source_file.cpp:64:12: error: redefinition of 'name'
        string name = "StandardFahrzeug" ;
               ^
    source_file.cpp:62:29: note: previous definition is here
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
                                ^
    source_file.cpp:65:9: error: redefinition of 'anzahlInsassenMaximal'
        int anzahlInsassenMaximal = 3;
            ^
    source_file.cpp:62:39: note: previous definition is here
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
                                          ^
    source_file.cpp:66:9: error: redefinition of 'anzahlInsassenAktuell'
        int anzahlInsassenAktuell =1;
            ^
    source_file.cpp:62:66: note: previous definition is here
    Fahrzeug :: Fahrzeug(string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
                                                                     ^
    source_file.cpp:69:11: error: expected unqualified-id
    Fahrzeug (int A)
              ^
    source_file.cpp:69:11: error: expected ')'
    source_file.cpp:69:10: note: to match this '('
    Fahrzeug (int A)
             ^
    source_file.cpp:79:37: error: expected identifier
        if(anzahlInsassenAktuell<=3) && (anzahlInsassenAktuell>=0)
                                        ^
    source_file.cpp:92:57: error: expected identifier
            if (anzahlAussteigen<=anzahlInsassenAktuell) && (anzahlAussteigen>=0)
                                                            ^
    source_file.cpp:104:63: error: use of undeclared identifier 'anzahlInsassenAktuell'
        cout << " Die aktuelle Anzahl der Insassen beträgt: " << anzahlInsassenAktuell << "\n";
                                                                 ^
    source_file.cpp:105:90: error: use of undeclared identifier 'anzahlInsassenMaximal'
        cout << " Die maximale Anzahl der Insassen für eine Standardfahrzeug beträgt: " << anzahlInsassenMaximal << "\n";
                                                                                           ^
    9 errors generated.
    


  • ryhne schrieb:

    Ich glaube auch nicht, dass die Forumsteilnehmer "online-fehlerbehebender-Compiler" sind!!

    Das wollte ich Dir auch nicht unterstellen, sondern Dich vielmehr vor dem Mißverständnis bewahren.
    Die Motivation der Teilnehmer hier, Dir beim lernen zu helfen, geht nämlich ziemlich schnell gegen 0 sonst.

    Ganz zu schweigen von Deiner eigenen Motivation, wenn Du Deinen Kram nicht ausprobieren kannst und schnell Rückmeldungen von einem echten Compiler erhältst.



  • Ich habe Xcode schon probiert.
    aber es gibt einige Unterschiede.
    Nach jeder Copy-paste muss ich viele kleinigkeiten ändern und da ich 5 Dateien habe, dauert es zu viel!(und die Header Dateien darf ich nicht ändern!)
    anyways
    danke für eure Antworten
    ich glaube ich habe's geschafft! 🙂

    #include "Fahrzeug.h"
    #include <string>;
    
    Fahrzeug :: Fahrzeug()
    {
         name = "StandardFahrzeug" ;
         anzahlInsassenMaximal = 3;
         anzahlInsassenAktuell =1;
    }
    Fahrzeug::Fahrzeug (string name ,int anzahlInsassenMaximal, int anzahlInsassenAktuell)
    {
        this -> name=name;
        this -> anzahlInsassenMaximal=anzahlInsassenMaximal;
        this-> anzahlInsassenAktuell=anzahlInsassenAktuell;
    
    }
    Fahrzeug::~Fahrzeug()
    {
    }
    
    int Fahrzeug::einsteigen(int anzahlEinsteiger)
    {
        anzahlInsassenAktuell=anzahlInsassenAktuell+anzahlEinsteiger ;
        if(anzahlInsassenAktuell<=3)
            return 0;
        else
        {
            cout << "Einsteigen nicht moeglich, da zu wenig Platz im Fahrzeug! \n" ;
            return -1;
        }
    }
    int Fahrzeug::aussteigen(int anzahlAussteigen)
    {
        anzahlInsassenAktuell=anzahlInsassenAktuell- anzahlAussteigen;
            if (anzahlAussteigen<=anzahlInsassenAktuell)
            {
                return 0;
            }
        else
        {
            cout << " So viele Insassen sind nicht im Auto! \n";
            return -1;
        }
    }
    void Fahrzeug::printStatus()
    {
        cout << " Der Name des Fahrzeugs: " << name << endl;
        cout << " Die aktuelle Anzahl der Insassen betraegt: " << anzahlInsassenAktuell << endl;
        cout << " Die maximale Anzahl der Insassen betraegt: " << anzahlInsassenMaximal << endl;
    
    }
    


  • ryhne schrieb:

    Ich habe Xcode schon probiert.
    aber es gibt einige Unterschiede.
    Nach jeder Copy-paste muss ich viele kleinigkeiten ändern und da ich 5 Dateien habe, dauert es zu viel!(und die Header Dateien darf ich nicht ändern!)

    Das sollte aber eigentlich nicht so sein - welche Kleinigkeiten musst Du ändern? Beispiel?

    Und welches Copy&Paste?

    Achte darauf, dass wenn Du verschiedene Compiler benutzt, z.B. i.d. Uni/Schule und zu hause, dass Du mit dem gleichen C++ Standard übersetzt.

    C++14 wäre super. C++11 mindestens.

    Aktivier alle Warnungen.

    ryhne schrieb:

    anyways
    danke für eure Antworten
    ich glaube ich habe's geschafft! 🙂

    Ja.
    Die Tests in aus/einsteigen würde ich vor die Veränderung der Member machen. (steht auch so im Kommentar in Header Fahrzeug.h )
    D.h. bei einer falschen Anzahl passiert dem Fahrzeug erstmal nix.


Anmelden zum Antworten