Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
661
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FireFlow FireFlow ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    213
    Hallo. Ich habe gerade mal so zum Testen eine Klasse geschrieben die man mit dem Operator << mit Daten füllen soll;

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    template <class T>
    class test
    {
     
        private:
     
            T var;
     
        public:
     
            test() : var(T()) {};
     
            operator= (const T& ref)
            {
                var = ref;
            }
     
            operator<< (const T& ref)
            {
                var += ref;
            }
     
            T get() {
                return var;
            }
     
    };

    Nun meine Frage:

    Code :
    1
    2
    3
    4
    5
    
        test<int> obj;
        obj = 5;
        obj << 1 << 4;
        cout << obj.get(); 
        // Ausgabe: 6

    Warum wird der zweite Operator << 4 nicht abgearbeiten oder wie muss ich die Klasse umschreiben dass es geht.

    Danke & Frhe Weihnachten
     
    --//--//--// My StillLife! //--//--//--
    Obere URL dient nur als Google-Push )

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Du musst in dem Fall eine Referenz auf dein Objekt zurückgeben, damit du die Operation verketten kannst.

    Code :
    1
    2
    3
    4
    5
    
    test& operator<< (const T& ref)
    {
      var += ref;
      return *this;
    }

    Ich rate allerdings davon ab, den '<<'-Operator für so eine Operation zu missbrauchen. Was du da machst, entspricht exakt der Funktion des '+='-Operators, also benutz doch lieber den.

    Übrigens werden viele Leute verwirrt, wenn man ihnen abwegig überladene Operatoren vorsetzt.
    Geändert von Kachelator (26.12.04 um 12:12 Uhr) Grund: OMG, schon wieder vertippt!
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  3. #3
    FireFlow FireFlow ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    213
    Ist mir durchaus klar dass der Operator hier nicht viel Sinn macht. Ich wollte nur mal wissen wie es geht. Danke für die Antwort funktioniert!
     
    --//--//--// My StillLife! //--//--//--
    Obere URL dient nur als Google-Push )

Ähnliche Themen

  1. VB 08 / Operator Mid
    Von Xebino im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 14.10.09, 09:23
  2. SQL Abfrage mit NOT Operator
    Von blackwicky im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 10.01.09, 18:03
  3. Like Operator
    Von Arijane im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 22.06.08, 10:16
  4. Welcher Operator?
    Von whisky1108 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 10.11.07, 02:00
  5. Modulo-Operator
    Von ExAByte im Forum PHP
    Antworten: 2
    Letzter Beitrag: 14.02.02, 14:59