kostenloser Webspace werbefrei: lima-city


Indexoperator [] überladen

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Morgen...

    Ich steh gerade vor einem riesigen (Verständnis-)Problem...

    Ich habe eine Klasse, welche ein Array verwaltet. Initialisiert wird diese Klasse mit:

    Array<int> intValues(10);


    In der Klasse wird damit ein Feld der Länge 10 angelegt.

    Wenn man nun

    intValues[15] = 6;


    aufruft, soll ein neues Feld mit Länge 15 angelegt, die Werte vom alten Feld kopiert und das alte Feld gelöscht werden.
    Zu diesem Zwecke muss ich den Operator [] überladen.

    Ich habe in der Klasse schon diesen Ansatz implementiert:

    template <class T>
    T Array<T>::operator[] (int position){
    
            m_pData[position];
    
    }


    m_pData ist ein Pointer auf das Feld mit den Werten. Das ganze ist mit Templates implementiert (Vorgabe vom Lehrer...)

    Aber jetzt weiß ich nicht, wie ich auf die entsprechenden Werte für den Index und für den Wert zugreifen kann...
    Ich meine, der Wert, der in der eckigen Klammer steht, ist für den Index, dass iss mir klar, aber wie bekomm ich jetzt den Wert, der an die entsprechende Stelle im Feld geschrieben werden soll?

    Danke für euer (zukünftiges) Bemühen...

    lg
    schrotti12


    Beitrag geändert: 16.6.2008 13:04:13 von schrotti12
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.


    Ich meine, der Wert, der in der eckigen Klammer steht, ist für den Index, dass iss mir klar, aber wie bekomm ich jetzt den Wert, der an die entsprechende Stelle im Feld geschrieben werden soll?

    Gar nicht, deine überladene Operatorfunktion sollte eine Referenz auf \"richtige\" Listenelement zurückgeben und die Zuweisung (z.B. \"=6\") erfolgt dann quasi von selbst.

    Also ca. so:
    int& MyClass::operator[](int index)
    {
      return MyArray[index];
    }
  4. Autor dieses Themas

    schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Klar... Danke für die Hilfe... funktioniert super...

    War in dem Falle ein Verständnisfehler meinerseits!

    lg
    schrotti12
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!