Problem mit friend Operator in Template Klasse
-
Hallo,
ich habe eine Template Klasse, in der der * Operator überladen werden soll. Dabei soll links vom Operator eine Zahl (zB. int) und rechts ein Objekt der Klasse stehen. Der Rückgabe Wert soll hierbei wieder ein Objekt der Klasse sein. Bei google habe ich jetzt gefunden, dass ich den * Operator als friend Funktion überladen soll. Mein Code sieht so aus:template <typename T> class Matrix; template <typename T, typename U> Matrix<T> operator* (const U& zahl, const Matrix<T>& obj); template <typename T> class Matrix { //... public: template <typename U> friend Matrix<T> operator* (const U& zahl, const Matrix<T>& obj); }; template <typename T, typename U> Matrix<T> operator* (const U& zahl, const Matrix<T>& obj) { //Rechnung }Wenn ich mit jetzt aber damit arbeiten will, bekomme ich als Fehlermeldung
Error: Kein Zugriff auf private Member, dessen Deklaration in der Matrix<T>-Klasse erfolgteSieht jemand, woran das liegt

-
Das liegt daran, dass du einmal eine unäre und einmal eine binäre Template verwendest, also stimmt die Signatur nicht.
-
Wie müsste das denn richtig aussehen? Sorry, schaue bei friend funktionen noch immer nicht so richtig durch