Nein. Es gibt für Benutzerdefinierte Typen kein Standardverhalten. Wenn du da probierst die eine Instanz mit der anderen zu addieren, kriegst du den selbern Fehler, wie, wenn du eine Funktion aufrufen möchtest, die es nicht gibt.
Das heisst, dass du diese Funktion implementieren musst, wenn du deine Klassen addieren willst.
Die Implementierung des
+ - Operator wird meist tatsächlich anhand des
+= - Operators definiert.
in etwa so:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
inline tbVector3 operator + (const tbVector3& a, const tbVector3& b)
{
tbVector3 temp = a;
a += b;
return temp;
}
|
Das aus dem Grund, dass ja das hier das selbe Ergebnis bringen sollte:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
|
tbVector3 a,b,c,d;
// füllen
c = a + b;
d = a;
d += b; // d sollte das gleiche sein, wie c
|
Wenn man allerdings aus irgendwelchen Gründen die Implementierung anderst haben will/muss, dann kann man aber trotzdem beide Operatoren unabhängig definieren. (Auch wenn man dann schauen muss, dass es sich trotzdem logisch verhält)