Class und keinen Durchblick
-
des mit dem protected will der lehrer so.
So hier mal die zweite Classclass Time: public Date { protected: int hour; int minute; int second; public: Time() : Date () { } 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; } Time( Time const& r ) Time& operator = (Time const & r) { day = r.day; month = r.month; year= r. month; hour = r.hour; minute = r. minute; second = r. second; return * this; } void Time::print(std::ostream& s) { s << day << '.' << month << '.' << year << hour << '.' << minute << '.' << second <<; } Date( Date const& r ) 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}Danack kommt noch Teil 3 mal schauen was dass dann ist
-
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
time1undtime2noch 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
time2nuntime1zuweist hat jatime1anschließend die gleichen "Werte" wietime2. 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
inlineund 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