Musterlösung zum vergleichen Gesucht



  • Bektas schrieb:

    Achten Sie auf eine saubere Garbage Collection!
    Hinweise:
    (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);
    (2) Beim Streaming kann die Klasse string nicht direkt ausgegeben werden, sondern muss in
    einen ASCII String umgewandelt werden. Dazu existiert die Methode c_str():
    cout << "Kfz-Zeichen: " << this->kfzZeichen.c_str() << endl;

    lol

    SideWinder schrieb:

    Bin für 350€ dabei.

    € 345,-



  • € 320 & ein Eis in der Waffel, bitte.

    EDIT:

    Swordfish schrieb:

    Bektas schrieb:

    Achten Sie auf eine saubere Garbage Collection!
    Hinweise:
    (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);
    (2) Beim Streaming kann die Klasse string nicht direkt ausgegeben werden, sondern muss in
    einen ASCII String umgewandelt werden. Dazu existiert die Methode c_str():
    cout << "Kfz-Zeichen: " << this->kfzZeichen.c_str() << endl;

    lol

    omg. nein, oder?



  • Bin für strikteres NC 🕶



  • (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);
    (2) Beim Streaming kann die Klasse string nicht direkt ausgegeben werden, sondern muss in
    einen ASCII String umgewandelt werden. Dazu existiert die Methode c_str():
    cout << "Kfz-Zeichen: " << this->kfzZeichen.c_str() << endl;
    

    Ist es möglich, dass ihr euch einen neuen Lehrer besorgt? 😮



  • Die zunehmende Anzahl solcher Fragen: "Ich/wir haben eine Aufgabe zum Lernen bekommen und wissen nicht, wie diese zu lösen ist" wird langsam erschreckend.
    Schande über euch oder ordentlich was raustun!!! 😃 Wollt ihr etwas lernen oder müsst ihr das nur? 😕 Früher gab es in jeder tausendsten Cornflake-Packung ein fertiges Abschlussdiplom! 😡



  • SideWinder, ein paar Stunden?! Das dauert Fünf Minuten! 😮



  • DU MACHST DEN PREIS KAPUTT, NARR!



  • Swordfish schrieb:

    DU MACHST DEN PREIS KAPUTT, NARR!

    Und schon hab' ich den Fisch am Haken 🕶



  • Geh' lieber hin, und beantworte die an dich gerichteten Fragen zur Komplexitätstheorie.



  • Das hab' ich schon. Wie du siehst habe ich davon eher wenig als viel Ahnung. 😞



  • Sone schrieb:

    P.S.: Das hab' ich schon. Wie du siehst habe ich davon eher wenig als viel Ahnung. 😞

    Ah ja. Wiedermal ein Volltreffer 👍 . Magst vielleicht die noch offene Frage beantworten, was eine (Komplexitäts-) Klasse ist - zwecks Comedy am Abend?



  • Swordfish schrieb:

    Sone schrieb:

    P.S.: Das hab' ich schon. Wie du siehst habe ich davon eher wenig als viel Ahnung. 😞

    Ah ja. Wiedermal ein Volltreffer 👍 . Magst vielleicht die noch offene Frage beantworten, was eine (Komplexitäts-) Klasse ist - zwecks Comedy am Abend?

    Man unterteilt Probleme/Algorithmen nach ihrer Komplexität in Komplexitätsklassen.

    Und was war daran so witzig?



  • Sone schrieb:

    Man unterteilt Probleme/Algorithmen nach ihrer Komplexität in Komplexitätsklassen.

    Man unterteilt Fragesteller und Antworter hier im Forum in die Hauptklassen [ Troll ] - [ Kein Troll ]. Von diesen Hauptklassen gibt es zahlreiche Unterklassen, in die sich jeder selbst einordnen darf. Auch diese Klasseneinteilung ist sehr komplex! 🙂 Zum Thema: daddeldu!
    😃



  • ich biete das für 10€ an, falls ihr beweisen könnt, dass ihr danach nen neuen Lehrer bekommt 😮



  • Cyres schrieb:

    ich biete das für 10€ an, falls ihr beweisen könnt, dass ihr danach nen neuen Lehrer bekommt 😮

    Wir?



  • Hallo[,] wir haben in der Uni eine Aufgabenstellung bekommen und würden uns freuen[,] wenn wir hi[e]r im Forum mal eine Musterlösung dazu bekommen würden[...]



  • CFahrzeug(string identNummer, string kfzZeichen, unsigned short baujahr);
    

    Lol. Und der Lehrer weiß es nicht besser? Oder steht dann in der Initialisierungsliste tatsächlich std::move (was immer noch völlig bescheuert wäre)? Oh stopp, da der Parameter den gleichen Identifier wie der Member hat, kann man ihn überhaupt nicht in ner Initialisierungsliste initialisieren.... 😉

    Zum Klassendesign sage ich jetzt mal auch nichts.
    Und wer sagt bitteschön "deklarieren und programmieren"? Sagt man nicht entweder deklarieren und definieren oder programmieren oder nur definieren...?
    Google: "deklarieren und programmieren" (6 Ergebnisse)
    Google: "deklarieren und definieren" (6370 Ergebnisse)

    Und wieso kann man die Fahrzeugart noch nachträglich ändern? Das sollte doch in den Konstruktor und in der Klasse konstant sein, genau wie das Baujahr auch?
    Oder wer werkelt von heute auf morgen eine Limousine zum Geländewagen um?
    Und wieso man zum ausgeben die Methode Print() so verwendet ist mir Schleierhaft. Statt einfach den insertion-operator zu überladen und das ganze Stream-Unabhängig und mit Lerneffekt zu machen (obwohl hier der Punkt ins Spiel kommt ob die das überhaupt schon hatten... 💡 )

    So will es der Lehrer (1):

    class CFahrzeug
    {
            std::string identNummer,
                        kfzZeichen;
    
            unsigned baujahr;
    
            enum e_fahrzeugArt
            {
                    unbekannt,
                    pkw,
                    lkw
            } typ;
    
            bool overdrive;
    
    public:
            CFahrzeug(std::string const& _identNummer, //Das konnte ich nicht so stehen lassen
                      std::string const& _kfzZeichen,
                      unsigned short _baujahr):
                    identNummer(_identNummer),
                    kfzZeichen(_kfzZeichen),
                    baujahr(_baujahr),
                    typ(unbekannt),
                    overdrive(false)
                    {
                    }
    
            bool SetFahrzeugArt(e_fahrzeugArt arg)
            {
                    typ = arg;
            }
    
            bool SetOverdrive(bool arg)
            {
                    overdrive = arg;
            }
    
            bool Print() const //Der Prof hat den const-specifier vergessen
            {
                    std::cout << "Ident-Nr: " << identNummer << "\n"
                                 "Kfz-Zeichen: " << kfzZeichen << "\n"
                                 "Art: " << typ << "\n"
                                 "Overdrive: " << (overdrive ? "ja" : "nein");
    
                    return std::cout;
            }
    };
    

    Aufgabe 2 gibt mir den Rest.

    Erstellen Sie im gleichen Projekt eine Klasse CFurhpark mit einem Feld fahrzeugListe
    von Zeigern des Typs CFahrzeug.

    Wieso Zeiger?

    Das Feld soll bis zu 10 solche Zeiger halten können.

    Wieso nur Zehn?

    Dazu ist eine Konstante cMaxArrayLength zu deklarieren

    Bitte was? C-Arrays!?

    Verwenden Sie hier keine Präprozessor
    Direktive!

    Wieso zum Teufel sollte das jemand tun wollen?

    Benutzen Sie die Funktion main() zum Testen Ihres Programms.

    Das ist Comedy, Schwertfisch! XD

    (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);

    Und das ist auch noch falsch. Hat er einen Compiler aus den wilden Achzigern?

    (2) Beim Streaming kann die Klasse string nicht direkt ausgegeben werden, sondern muss in
    einen ASCII String umgewandelt werden. Dazu existiert die Methode c_str():
    cout << "Kfz-Zeichen: " << this->kfzZeichen.c_str() << endl;

    Wieder völlig falsch. Das wird schon intern im überladenen Operator gemacht, damit wir es nicht tun müssen.

    Also (2) ist einfach zu heftig. Da sind 350€ schon gerechtfertigt.



  • Sone schrieb:

    (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);

    Und das ist auch noch falsch. Hat er einen Compiler aus den wilden Achzigern?

    Nö, er hats wahrscheinlich einfach mal probiert, ohne #include <string> und der Compiler hat irgendeine blöde Fehlermeldung ausgespuckt, also gehts nicht...



  • Mechanics schrieb:

    Sone schrieb:

    (1) Es ist nicht möglich, Literale an Schnittstellenparametern vom Typ string direkt zu
    übergeben. Dazu muss ein Cast verwendet werden:
    CFahrzeug * pMyCar = new CFahrzeug(string("Wahl 001"), string("S-AP 1234"), 1978);

    Und das ist auch noch falsch. Hat er einen Compiler aus den wilden Achzigern?

    Nö, er hats wahrscheinlich einfach mal probiert, ohne #include <string> und der Compiler hat irgendeine blöde Fehlermeldung ausgespuckt, also gehts nicht...

    ODer er hat beim Schlafwandeln im Header von basic_string rumgefummelt und den Ctor explicit gemacht, wäre auch plausibel.



  • Sone schrieb:

    Oh stopp, da der Parameter den gleichen Identifier wie der Member hat, kann man ihn überhaupt nicht in ner Initialisierungsliste initialisieren... 😉

    Doch, du Torf.


Anmelden zum Antworten