Wegginho Geschrieben 20. Februar 2009 Geschrieben 20. Februar 2009 Hallo Leute, versuche grade Krampfhaft einfach nur eine Funktion für meine Konto-Verwaltungs-Aufgabe zu erstellen. void Konto::setLastModify() { time_t Zeitstempel; tm * Timereturn = new tm; Zeitstempel = time(0); localtime_s(Timereturn ,&Zeitstempel); _lastmodify = Timereturn; } Wie man sehen kann, versuche ich dem Konto dann quasi den Zeitstempel der letzten Änderung aufzudrücken, indem ich meine Klassenvariable _lastmodify mit dem tm struct Timereturn überschreibe. An der Stelle bekomm ich nen Fehler raus: "binary '=' : no operator found which takes a right-hand operand of time 'tm *'" Wie kann ich den da einfach reinkopieren? Copyconstructor? Gibts da sowas? MfG Zitieren
Klotzkopp Geschrieben 20. Februar 2009 Geschrieben 20. Februar 2009 _lastmodify ist ein tm, Timereturn ist ein tm*, das passt einfach nicht. Du könntest Timereturn dereferenzieren, aber der Code ist sowieso viel zu kompliziert, und ein Speicherleck hast du auch drin (new ohne delete). void setLastModify() { time_t Zeitstempel = time(0); localtime_s(&_lastmodify ,&Zeitstempel); } [/code] Zitieren
Wegginho Geschrieben 20. Februar 2009 Autor Geschrieben 20. Februar 2009 (bearbeitet) Danke, war mir schon klar, dass die Funktion so nicht fertig ist. Aber irgendwie muss man das Ganze erstmal zum Laufen bekommen, bevor man an sowas wie Sicherheit denkt. Hab den halben morgen mit Time und Date Funktionen rumprobiert ... trotzdem danke für deine schnelle Hilfe. Auch irgendwie komisch, dass ich die komplizierte Programmierung von CATIA ohne weiteres verstehe und bei so einfachen Themen wie Date/Time nen Rappel bekomme :-D :old /edit: ach ganz vergessen, kann ich eigentlich alle Date/Time-Sachen (also die tm_mday Befehle) zusammen in einen String konvertieren? komischerweise kann ich die ja direkt über cout ausgeben, aber nicht mit einfachem append an einen String hängen. Bearbeitet 20. Februar 2009 von Wegginho Zitieren
TDM Geschrieben 20. Februar 2009 Geschrieben 20. Februar 2009 Da es C++ ist, was spricht gegen die ATL-CTime-Klasse? Zitieren
Klotzkopp Geschrieben 20. Februar 2009 Geschrieben 20. Februar 2009 ach ganz vergessen, kann ich eigentlich alle Date/Time-Sachen (also die tm_mday Befehle) zusammen in einen String konvertieren? komischerweise kann ich die ja direkt über cout ausgeben, aber nicht mit einfachem append an einen String hängen. cout ist ein Stream. Streams haben eine andere Schnittstelle als Strings. Aber dafür gibt's Stringstreams Da es C++ ist, was spricht gegen die ATL-CTime-Klasse?Dass die ATL Microsoft-spezifisch und damit nicht portierbar ist. Zitieren
Wegginho Geschrieben 24. Februar 2009 Autor Geschrieben 24. Februar 2009 Hey Leute, ich grab jetzt einfach nochmal das Thema aus. Ist zwar etwas verändert, hat mit dem Topic aber noch was zu tun . Ich verstehe im Moment nicht ganz, wie ich's hinbekommen soll, mehrere Konten hinzubekommen. Wahrscheinlich weil's grad einfach früh am Morgen ist oder so. Ich will keine Datenbankverbindung oder sowas machen, sondern einfach nur sagen wir 3 Konten machen: "Max Mustermann", 1000001, 200€ "Julia Mustermann", 1000002, 250€ "Oma Mustermann", 1000003, 1000€ Wenn ich jetzt ne einfache Schleife mache, dann überschreibe ich ja jedes Mal mein schönes Konto ^^. Naja, einfache Lösungsansätze sind sehr willkommen, komme nämlich grad ausm Karneval ! *g*:bimei Zitieren
Klotzkopp Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Wenn ich jetzt ne einfache Schleife mache, dann überschreibe ich ja jedes Mal mein schönes Konto ^^.Ein Konto reicht ja auch nicht, wenn du drei brauchst. Ein Array wäre eine Möglichkeit. Eine Schleife ist auch nicht besonders sinnvoll, wenn du sowieso bei jedem Durchlauf etwas anderes machst. Loop-switch sequence - Wikipedia, the free encyclopedia Zitieren
Wegginho Geschrieben 24. Februar 2009 Autor Geschrieben 24. Februar 2009 Ne, ich mein das ist doch ne relativ einfache Funktionalität oder? Ich möchte ein Programm haben, dass ich starte, 2 Konten erstelle, dann Quasi die Funktionen der Konten-Klassen aufrufen kann und fertig. Ungefähr so im command (also nur nen Consolenprogramm): Uebungen.exe create -> Neue Kontonummer: (automatisch)1000001 Neue Pinnummer: 12345 (kryptisch, mach ich selber) Name des Besitzers: (Eingabe)Max Mustermann Startguthaben: (Eingabe)200€ (Ausgabe:) Konto wurde erstellt ... (Eingabe:) Zugriff -> Bitte geben Sie die Kontonummer ein: (Eingabe)1000001 Bitte geben Sie nun die Pinnummer ein: (Eingabe) 12345 Aktuelles Guthaben: 200€ 1. Abheben 2. Einzahlen 3. Überweisen 4. blabla So, auch wenn's jetzt ne relativ lange Beschreibung geworden ist ... Ich glaub ich habs während meiner Beschreibung schon fast selber verstanden. Vorschläge werden natürlich dankend angenommen. Achja, wie mache ich überhaupt das €-Zeichen (Euro) ? MfG ! Zitieren
TDM Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Ne, ich mein das ist doch ne relativ einfache Funktionalität oder? Liste von Kontenobjekten und dann List(current).setLastModify(); Achja, wie mache ich überhaupt das €-Zeichen (Euro) ? Alt Gr + E Zitieren
Wegginho Geschrieben 24. Februar 2009 Autor Geschrieben 24. Februar 2009 Ich glaub das war die unqualifizierteste Antwort, die ich bisher in diesem Forum gelesen hab. Danke für diesen Beitrag weiteren Mülls im Universum! Natürlich meine ich die ASCII Version von Euro. Was die Liste angeht keine unbedingt schlechte Idee, wenn ich nicht eine Kontonummer als Listenindex nehmen müsste und somit eine Liste, in der über eine Millionen ungenutzter Argumente drinstehen. Zitieren
TDM Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Ich glaub das war die unqualifizierteste Antwort, die ich bisher in diesem Forum gelesen hab. Dann definier die Fragen besser. Natürlich meine ich die ASCII Version von Euro. Dafür gibts Ascii-Tabellen. Goolge + ASCII-Tabelle meint 0x80. (Das heißt aber nicht, dass die Zeichencodierung deiner Konsole o.Ä. das auch so wiedergibt.) Was die Liste angeht keine unbedingt schlechte Idee, wenn ich nicht eine Kontonummer als Listenindex nehmen müsste und somit eine Liste, in der über eine Millionen ungenutzter Argumente drinstehen. Wieso denn ungenutzt? Da steht das drin, was ein Objekt benötigt. Wenn du Name/Vorname etc für die Klasse deklarierst, dann steht das auch mit drin und ist leicht abruf-/-veränderbar. Zumal du aus der Liste auch einfach noch eine Map machen könntest. (Key-Value-Paar) Zitieren
Klotzkopp Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Ich glaub das war die unqualifizierteste Antwort, die ich bisher in diesem Forum gelesen hab.Alt Gr + E ist die richtige Antwort, wenn dein Quellcodeeditor dieselbe Zeichencodierung benutzt wie die Konsole, in der du dein Programm ausführst. Unter Linux beispielsweise, wo eigentlich alles von vornherein als UTF-8 codiert ist, funktioniert das prima. Danke für diesen Beitrag weiteren Mülls im Universum!Wie gesagt, die Antwort war korrekt. Allerdings ist deine Ausdruckweise unangebracht. Reiß dich bitte zusammen. Natürlich meine ich die ASCII Version von Euro.Der ASCII-Zeichensatz enthält das Euro-Zeichen nicht. Auch die Standard-Codepage der Windows-Eingabeaufforderung (Codepage 850) enthält das Zeichen nicht. Du kannst allerdings mit chcp die Codepage der Eingabeaufforderung ändern, beispielsweise auf 1252, das ist vermutlich die Codierung, die dein Editor benutzt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.