Bin am Üben, Klasse so halbwegs okay?



  • Hoffentlich... schrieb:

    Zu 8:wie genau würdest du es denn machen, wenn nicht mit so einem Index?

    Wie ich bereits sagte, ich würde eine Membervariable length nehmen. Diese gibt an, wieviel Elemente bereits im Vektor sind. Der Wertebereich von length wäre dementsprechend 0 <= length <= size. Du kannst aber auch index nehmen, wenn dir das sympathischer ist. Nur würde ich dann index nicht auf das letzte Element zeigen lassen, sondern 1 Element dahinter, sozusagen auf das nächste Element. Praktisch gesehen, läuft das Handling dann auf das gleiche wie mit length hinaus.



  • @Hoffentlich...
    Im Prinzip macht der Zuweisungsoperator genau das gleiche wie der Kopier-Konstruktor. Jedoch musst du dir im klaren darüber sein, dass du beim Zuweisungsoperator (der wars ;)) vorher noch den Speicher freigeben solltest. Da du ihn ansonsten unbrauchbar machst.

    Also ich würde dann den Zuweisungsoperator etwa so gestalten:

    IntVektor& operator=(const IntVektor &iv)
    {
        if(this != &iv) // Keine Selbstzuweisung
        {
             size = iv.size;
             index = iv.index;
             delete[] array; // Bevor du neuen Speicher allokierst erstmal freigeben
             array = new int[size];
    
             for(int i=0;i<size;i++)
                  array[i]=f.array[i]; 
        }
        return *this;
    }
    

    Caipi


Anmelden zum Antworten