zerko: Funktionen & Operatoren Overloading....

Hey...

Ich habe einige Probleme mit meinen Operatoren im C++ Quellcode..
Eigentlich sind es nur Versuche, aber es will nicht klappen.

Das Problem liegt bei der Operatoren Überladung...
Dort liegt wahrscheinlich auch mein Problem..

Kennt vielleicht jemand ein Tutorial, Workshop oder einige Beispiele im Netz zum Thema Operator Overloading in C++??

Gruß
zerko

  1. Moin,

    Das Problem liegt bei der Operatoren Überladung...
    Dort liegt wahrscheinlich auch mein Problem..

    Vielleicht postest Du einfach mal den Quellcode.

    Kennt vielleicht jemand ein Tutorial, Workshop oder einige Beispiele im Netz zum Thema Operator Overloading in C++??

    Googlehupfer schauen hier: http://google.de/search?q=c%2B%2B+overloading+tutorial

    lg, Konrad -

    --
    Der Genitiv ist des Dativs Tod
    1. Hey Konrad..
      Hab bei Tante google schon gesucht.. jedoch nur wenige Beispiele gefunden...!!

      Den Quellcode kann ich dir noch net posten, weil es diesen garnet gibt.
      Die Idee war es aus einem 2 dimensionalen Array einen bestimmten Wert zu überladen.

      Das 2-Dim-Array ist ja eigentlich nur in jeder Position ein Pointer auf den dazugehörigen "dimensionalen" Wert.
      Es sollten z.B. Vektoren darin enthalten sein, die mit einem Konstruktor aufgerufen werden ud mit dem Destructor "Bewegungen" erhalten, d.h. die Vektoren werden für Grafische-Anwendungen gebraucht.

      Ich habe es mit einer einfachen Klasse Bos beschrieben..

      Eineinfaches Beispiel...
      -----------------------------------------------------------------------
      class Box
      {
         int Laenge;
         int Breite;
      public:
         void Setze(int L, int B) {Laenge = L; Breite = B;}
         int HoleFlaeche(void) {return Laenge * Breite;}
         friend Box operator+(Box A, Box B);  // Addiere zwei Boxen
         friend Box operator+(int A, Box B);  // Addiere eine Konstante zu einer Box
         friend Box operator*(int A, Box B);  // Multipliziere eine Box mit einer Konstanten
      };

      [...]
      Spare mir den Rest..
      [...]

      Box operator*(int A, Box B) // Multipliziere eine Box mit einer Konstanten
      {
      Box Temp;
         Temp.Laenge = A * B.Laenge;
         Temp.Breite = A * B.Breite;
         return Temp;
      }
      -----------------------------------------------------------------------

      Jetzt stellt sich das Problem, dass der Eintrag "vArray[10][10]" bei einer Überladung berechnet werden soll.

      Ich habe jedoch das Problem, dass es vielleicht nicht funktionieren wird.
      Leider dauert es sehr lange diese Problemstellung zu implementieren, deshalb wollte ich den Versuch mit Referenzen starten.

      Jedoch dachte ich mir, dass vielleicht jemand das gleiche problem vor mir hatte??

      Gruß
      zerko

      1. Moin,

        Hey Konrad..
        Hab bei Tante google schon gesucht.. jedoch nur wenige Beispiele gefunden...!!

        *g* ich poste keinen Google-Link, ohne mich nicht vorher versichert zu haben, dass dort der erste Treffer ein Volltreffer ist. Also, schau Dir mal den ersten Treffer an.

        Jetzt stellt sich das Problem, dass der Eintrag "vArray[10][10]" bei einer Überladung berechnet werden soll.

        Jetzt sehe ich da das Problem nicht, sonst würde ich gerne helfen. Ein Index in einem Vektor ist doch auch lediglich ein Skalar, d.h. wenn Du ein Array von Boxen hast, egal wie viele Dimensionen, dann kann jedes Element darin als Box betrachtet werden und auch als solches in einer Rechnung verwendet werden, d.h. wenn Du schreibst

        vArray[0][0] + vArray[1][4]

        dann wird dafür 'operator+(Box, Box)' aufgerufen. Aber ich denke, das war Dir bewusst => ich habe das Problem nicht verstanden.

        lg, Konrad -

        --
        Der Genitiv ist des Dativs Tod
    2. Ich bin im Moment zu einem Zwischenergebnis gekommen, dass aber okay zu sein scheint.

      Der ArrayWert[10][10] wird innerhalb einer Template Klasse aufgerufen (nicht als Vektor)!!!!

      Der Vektor wird dann in dieser Klasse errechnet und umgewandelt!!

      Danke für das Interesse... :)

      Gruß
      zerko