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. 🙂



  • @entelechie:

    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];
    

Anmelden zum Antworten