![]() |
Re: [c++] Durch Objektliste interieren
So die Änderungen habe ich jetzt gemacht. Jetzt bekomme ich natürlich im Hauptprogramm Fehler. Code ist bisher unverändert, siehe oben.
Code:
Ohm Mann, irgendwie ist das doch ziemlich mühsam mit C++, wenn man keinen Plan hat. Wir machen gerade in der Schule Java und unser lehrer hatte die Idee, damit wir auch was von anderen Sprachen mitbekommen, dass jeder das Programm noch mal in einer Sprache seiner Wahl schreibt. Ich habe C++ genommen, weil wir keinen Delphi Compiler in der Schule haben.
e:\c\programme\bank\bank.cpp(34) : error C2228: left of '.begin' must have class/struct/union
type is ''unknown-type'' e:\c\programme\bank\bank.cpp(34) : error C3861: 'GetKonten': identifier not found Kunde.cpp e:\c\programme\bank\kunde.cpp(35) : error C2556: 'const std::list<_Ty> &CKunde::GetKonten(void)' : overloaded function differs only by return type from 'const std::list<_Ty> CKunde::GetKonten(void)' with [ _Ty=CKonto ] e:\c\programme\bank\kunde.h(22) : see declaration of 'CKunde::GetKonten' e:\c\programme\bank\kunde.cpp(35) : error C2373: 'CKunde::GetKonten' : redefinition; different type modifiers e:\c\programme\bank\kunde.h(22) : see declaration of 'CKunde::GetKonten' Gut Try-Catch-Blöcke kommen dann noch rein. Ich würde da gerne selber eine Exception werfen wie in Delphi:
Delphi-Quellcode:
Aber wie geben ich die Konten wieder frei im Destruktor von CKunde? Da war irgendwas mit delete []. Aber einen geneauen Plan habe ich da im Moment noch nicht.
except
on E: ESonstwas do raise E.Message; end; Wäre nett, wenn ihr mir da noch weiterhelfen könntet. |
Re: [c++] Durch Objektliste interieren
Zitat:
Zitat:
Zitat:
|
Re: [c++] Durch Objektliste iterieren
Ok, dann muss ich nur die Kunden wieder freigeben. Aber das geht auch irgendwie mit delete[] oder?
Und der Rest hat schon seine Richtigkeit. Es ist die Berufsschule. ;) |
Re: [c++] Durch Objektliste iterieren
Code:
wenn es ein Array ist, ein Objekt mit
delete []
Code:
.
delete Objektzeiger
Also in deinem Falle
Code:
Aso und meine Anmerkung mit dem Modifiern meinte ich so:
delete kunde1, konto1, konto2;
Code:
class CKunde
{ private: std::string _name; std::string _vorname; std::list<CKonto> _konten; public: CKunde(void); ~CKunde(void); std::string GetName(void); void SetName(std::string Name); std::string GetVorname(void); void SetVorname(std::string Vorname); std::list<CKonto>& GetKonten(); void AddKonto(CKonto& Konto); }; |
Re: [c++] Durch Objektliste iterieren
Zitat:
Zitat:
Leider besteht das Problem mit dem iterieren noch. |
Re: [c++] Durch Objektliste iterieren
So, ich sitze wieder in der Schule und versuche immer noch das Problem mit dem Iterieren zu lösen. :?
Habs, das const war zu viel, da habt ihr mich aber schön geärgert, als ihr das geändert habt. :mrgreen: |
Re: [c++] Durch Objektliste iterieren
Zitat:
Über eine konstante Liste kannst du aber natürlich nicht mit std::list<>::iterator, sondern mit std::list<>::const_iterator iterieren. (Für eine nicht konstante Liste funktioniert const_iterator natürlich auch.) |
Re: [c++] Durch Objektliste iterieren
Hm, dann ändere ich das noch mal.
Jetzt funktioniert die Ausgabe nicht mehr:
Code:
for(iterKunden = _kunden.begin(); iterKunden != _kunden.end(); ++iterKunden)
{ cout << iterKunden->GetName().c_str() << ", " << iterKunden->GetVorname().c_str() << endl; list<CKonto>::const_iterator iterKonten; for(iterKonten = iterKunden->GetKonten().begin(); iterKonten != iterKunden->GetKonten().end(); ++iterKonten) { cout << iterKonten->GetBeschreibung().c_str() << endl; cout << iterKonten->GetSaldo() << endl; } cout << endl; } Zitat:
|
Re: [c++] Durch Objektliste iterieren
Zitat:
Code:
class CKunde
{ ... public: std::string GetName(void) const; void SetName(std::string Name); std::string GetVorname(void) const; void SetVorname(std::string Vorname); const std::list<CKonto>& GetKonten() const; void AddKonto(CKonto& Konto); }; |
Re: [c++] Durch Objektliste iterieren
Puh, ich weiß schon, warum ich lieber mit Delphi arbiete. :roll:
Danke, jetzt geht es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz