Class und keinen Durchblick



  • Rück doch deinen Code mal anständig ein. Das kann man ja kaum lesen.. 🙄

    Initialisierungsliste darfst du auch gebrauchen und getter kannst(solltest) du const machen.

    Und warum du die setter nicht in einem Anlauf schreibst leuchtet mir auch nicht ein..



  • und hier der letzte Teil
    Erstelle eine Main function, die zwei instanzen von date und time hat. Und dann soll Time 1 gleich machen zu Time 2 und dann wieder alles anzeigen. wie macht man des mit dem gleich machen?



  • Playmuckel schrieb:

    und hier der letzte Teil
    Erstelle eine Main function, die zwei instanzen von date und time hat. Und dann soll Time 1 gleich machen zu Time 2 und dann wieder alles anzeigen. wie macht man des mit dem gleich machen?

    Was meinst du mit "gleich machen"?!



  • drakon schrieb:

    Was meinst du mit "gleich machen"?!

    Ich glaube mal das ist so gemeint:

    Time time1, time2;
    time1 = time2;
    

    Natürlich sollte man time1 und time2 noch gleich ein paar Werte übergeben :).



  • Playmuckel schrieb:

    Erstelle eine Main function, die zwei instanzen von date und time hat. Und dann soll Time 1 gleich machen zu Time 2 und dann wieder alles anzeigen. wie macht man des mit dem gleich machen?

    So ist es wirklich mühsam, zu helfen.

    Wenn du schon die Aufgabe abliest, könntest du sie so stellen, dass man sie versteht. "Zwei Instanzen von date und time" - sind das je zwei? Time 1 und Time 2 sollen die Namen der Instanzen von time sein? Und "gleich machen"? Man kann ja hier nur raten...

    Mizar schrieb:

    Ich glaube mal das ist so gemeint:

    Time time1, time2;
    time1 = time2;
    

    Dafür existiert das Wort "Zuweisung". Das sollte aber - wie schon erwähnt wurde - ohne Probleme funktionieren, da vom Compiler ein automatischer Zuweisungsoperator generiert wird.



  • Nexus schrieb:

    Mizar schrieb:

    Ich glaube mal das ist so gemeint:

    Time time1, time2;
    time1 = time2;
    

    Dafür existiert das Wort "Zuweisung". Das sollte aber - wie schon erwähnt wurde - ohne Probleme funktionieren, da vom Compiler ein automatischer Zuweisungsoperator generiert wird.

    Da hast du natürlich absolut recht. Wenn man time2 nun time1 zuweist hat ja time1 anschließend die gleichen "Werte" wie time2 . So gesehen würde das zu "gleich machen" passen und etwas anderes fällt mir zu "gleich machen" auch nicht ein. In der Aufgabe sollte ja auch ein eigener Zuweisungsoperator definiert werden und ich denke mir mal durch das "gleich machen" bzw. der Zuweisung soll einfach überprüft werden ob der eigene Zuweisungsoperator funktioniert.



  • Noch was zum Code:

    Playmuckel schrieb:

    Time:: Time (int d, int m, int y, int hr, int min, int sec)
                  { day = d; month = m; year = y; hour = hr; minute = min; second = sec; }
    

    Da wäre eine Initialisierungsliste angebracht.

    Playmuckel schrieb:

    int gethour ()
                 {return hour}
                 
                 int getminute ()
                 {return minute}
                 
                 int getsecond ()
                 { return second}
                 
                 void sethour (int)
                 
                 void setminute (int)
                 
                 void setsecond (int)
                 
                 void Date:: sethour(int hr)
                 { hour = hr}
                 
                 void Date:: setminute (int min)
                 { minute = min)
                 
                 void Date:: setsecond (int sec)
                 { second = sec}
    

    Und hier fehlen diverse Strichpunkte. Wieso implementierst du eigentlich einige der Memberfunktionen inline und andere nicht? Das würde ich konsequent machen.

    Mizar schrieb:

    In der Aufgabe sollte ja auch ein eigener Zuweisungsoperator definiert werden und ich denke mir mal durch das "gleich machen" bzw. der Zuweisung soll einfach überprüft werden ob der eigene Zuweisungsoperator funktioniert.

    Ja, das kann gut sein. Meiner Ansicht nach wäre es aber sinnvoller, ein Anwendungsbeispiel für den operator= zu zeigen, wenn dieser auch selbst implementiert werden muss...



  • Ok danke, ja ich meinte den Wert von einer Instance in die andere kopieren. Für mich ist dass ganze ein Buch mit 7 siegeln und ich bin dankbar für jede hilfe und ja ich habe Time 1 und Time 2 werte gegeben.



  • Also ist es jetzt geklärt?

    Und der Code mit den Fehlern (siehe mein vorheriger Post) kompiliert so?



  • naja der code muss nicht komplieren er will nur, dass wir diese class schreiben und des wars. also ich mache einfach Time2 = time1



  • Playmuckel schrieb:

    naja der code muss nicht komplieren er will nur, dass wir diese class schreiben und des wars.

    Ah, sehr sinnvoll. Es besteht also kein Anspruch auf Richtigkeit des Codes? 🙄

    Playmuckel schrieb:

    also ich mache einfach Time2 = time1

    Ja, halt eine normale Variablenzuweisung.



  • nicht wirklich solange es einigermaßen stimmt gibt er dir ne gute note



  • Playmuckel schrieb:

    nicht wirklich solange es einigermaßen stimmt gibt er dir ne gute note

    Musst du das tun oder interessiert es dich auch? Bei letzterem solltest du vielleicht etwas an deiner Einstellung ändern...



  • Teils teils. Es ist wirklich nur programm requirment um dann weiterstudieren zu können und der leher war nicht der beste, viele gelabber nie ein beispiel gebracht in der Vorlesung und so eine ist mir eh egal einstellung. Ich muss sagen ich bin mehr als froh, dass es heute abend vorbei ist und als Bauingenieur schreibt man eher keine C++ programme


Anmelden zum Antworten