operator=
-
Hi,
ich möchte einen kleinen Kalender schreiben, damit ich mir meine Termine besser merke.
in der Klasse Calendar habe ich eine Methode zum Hinzufügen eines Eintrags (Entry):
Entry *mEntry; //ein paar Definitionen von Calendar.h int mSize; //addEntry in Calendar.cpp void Calendar::addEntry(_Date *event, std::string data, int regular, int priority) { mEntry[mSize] = new Entry(event, data, regular, priority); //So richtig ??? mSize++; } Wie muss der operator= für Entry aussehen, damit die Sache in addEntry funktioniert ? //So ist es sicher falsch: Entry *Entry::operator=(Entry *e) { return e; }
Ich gebe zu, dass es etwas low ist in der Klasse Calendar mit einem Array zu arbeiten, wo es doch so viele schöne Hilfsklassen, wie z.B. Stacks und sowas gibt.
[ Dieser Beitrag wurde am 16.05.2003 um 19:50 Uhr von fit editiert. ]
-
Du kannst für Pointer keinen Zuweisungsoperator definieren. Nur für Klassentypen. Das wär auch nicht besonders sinnvoll.
-
@Bashar:
Thx.
Aber wie mache ich es dann, damit die erste Zeile in addEntry funzt ?
-
du willst glaub ich ein feld von Entry Zeigerns haben.
im moment hast du nur einen zeiger auf ein Entry objekt.
du muesstest mEntry also als Entry** mEntry definieren.
im konstruktor gibst du die groesse an: mEntry = new Entry*[x];in der add methode schreibst du dann mEntry[y] = new Entry(...);
nicht vergessen den ganzen speicher wieder im destruktor freizugeben.
-
wow. danke.
so hat es funktioniert.
ich konnte es selber kaum glauben.ich musste noch nicht mal die implementierung des operator= abändern.
also muss er so wohl richtig sein !?ach, ich merke schon wie sehr mir java ans herz gewachsen is.
keine sternchen und & ... *schwärm*und um den müll muss ich mich auch nicht kümmern
.
(Jaja, ich weiss, dass es genau dadurch aber langsamer is und so...)
-
Original erstellt von fit:
ach, ich merke schon wie sehr mir java ans herz gewachsen is.
keine sternchen und & ... *schwärm*selber schuld, wenn du sternchen verwendest.
ich zitiere dich mal:Ich gebe zu, dass es etwas low ist in der Klasse Calendar mit einem Array zu arbeiten, wo es doch so viele schöne Hilfsklassen, wie z.B. Stacks und sowas gibt.
-
@volkard:
passt schon.
so habe ich nämlich z.b. wieder gelernt, wie ich ein array von zeigern mache (Entry*[x];).
diese syntax war mir vorher nicht bekannt.aber hast schon recht.
irgendwann sollte ich die klassen einfach mal benutzen.
-
geht das nicht so
int (*foo)[x];