BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- C++ operator (http://www.black-board.net/thread.php?threadid=19950)


Geschrieben von HeaD am 23.02.2005 um 18:27:

  operator

Ich bin grade bei meinem Gefummel bei Matrizen angekommen und Stoße da auf sowas:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
	Matrix operator * (const Matrix& M) const 
	{
		Matrix T;

		T.e11 = e11 * M.e11 + e12 * M.e21;
		T.e21 = e21 * M.e11 + e22 * M.e21;
		T.e12 = e11 * M.e12 + e12 * M.e22;
		T.e22 = e21 * M.e12 + e22 * M.e22;
		
		return T;
	}


Was passier da ? Also ich meine nicht die Rechnenaufgaben sondern den Anfang: Matrix operator * (const Matrix& M) const ? Wird da der Operator * erstetzt oder was soll das ?

EDIT:
Vielleicht ist es erwähnenswert das sich das ganze in einer Klasse namens Matrix befindet...



Geschrieben von uzec am 23.02.2005 um 18:44:

 

ja du kannst operatoren für bestimmte klassen überschreiben.
wenn du 2 Martix objekte mit * multiplizierst wird dein eigenen operator ausgeführt. normalerweise weiß der compiler nicht was er tun soll wenn wenn du zwei objekte einer eigenen klasse multiplizieren(oder addieren/sonstwas) willst.
in deinem beispiel wird ein temporäres Matrix objekt erstellt und zurückgegeben.

Matrix1 = Matrix2 * Matrix3;

hier wird sozusagen die funktion * von Matrix2 mit dem Parameter Matrix3 aufgerufen und der rückgabewert wird in Matrix1 gespeichert.



Geschrieben von HeaD am 23.02.2005 um 19:30:

 

achso, ok, das Prinzip habe ich verstanden nun muß ich das mal irgendwie ein wenig ausprobieren großes Grinsen thx


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH