Warum friend ?
-
Hallo Leute
matrix.h
class matrix { valarray<double> v; public: friend bool operator== (const matrix&, const matrix&); };
matrix.cpp
bool operator==(const matrix& m1,const matrix& m2) {...}
Warum kann ich den Operator so nur als friend Funktion überladen ?
Wie könnte ich es ohne friend machen ?
THX Fleedo
-
ohne friend:
-
du deklarierst den operator außerhalb der klasse, er muss dann über öffentliche memberfunktionen die nötigen daten bekommen (das sollte übrigens deine erste wahl sein)
-
du machst ihn zu einer methode der klasse:
class x { bool operator == (const x &); };
das ist die letzte wahl
-
-
Hallo
Meinst du so in der Art ?
class matrix { ... } const bool operator ==(const matrix&, const matrix &);
matrix.cpp
const bool operator ==(const matrix& m1, const matrix &m2) { ...//Dann mit einer GetMethode die Daten aus der Klasse rausholen ??? }
Muss ich den Operator dann überhaupt noch in der matrix.cpp implementieren ?
THX Fleedo
-
irgendwo musst du ihn implementieren, das ist klar.
aber du könntest auch für jede memberfunktion eine eigene datei verwenden.
das ist egal.
-
Hi
THX aber warum kann ich die Operatoren nicht auf die genau gleiche Art und Weise inerhalb der Matrix überladen ?