Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

12.06.2008, 17:11

operator+ (zuviele parameter)

hi leute.. ich bekomme bei folgender signatur

C-/C++-Quelltext

1
2
3
4
inline Vector3 operator +(const Vector3& a, const Vector3& b)
{
    return Vector3(a.x + b.x, a.y + b.y, a.z + b.z);
}


diesen fehler:


Zitat


Fehler 1 error C2804: Binärer Operator '+' hat zu viele Parameter
Fehler 2 error C2333: 'Vector3::operator +': Fehler in Funktionsdeklaration; Funktionstext wird übersprungen


was genau mache ich da falsch?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

tnecniv

Treue Seele

Beiträge: 164

Wohnort: BERLIN

  • Private Nachricht senden

2

12.06.2008, 17:18

na du wendest den operator doch auf ein objekt an, d.h. dein erster operand steht schon fest. Als parameter brauchst du nur den zweiten noch.

C-/C++-Quelltext

1
2
3
4
inline Vector3 operator +(const Vector3& a)
{
    return Vector3(this->x + a.x, this->y + a.y, this->z + a.z);
}


oder so ungefähr..
Sagt der igel zu dem dachs:
willst du größer sein, dann wachs!
- alte Fritz weisheit

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

12.06.2008, 17:27

lol.. is eigentlich logisch..


Edit: hat sich erledigt :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

12.06.2008, 23:10

Ganz so einfach ist es nicht.
Steht der operator + in der Klasse, dann bekommt er 1 Argument.
Ist er jedoch global (was als besserer Stil gilt), dann bekommt er 2 Argumente.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

12.06.2008, 23:17

danke nochmal für die ausführung, aber ich habs bereits im buch nachgelesen :D

war mein fehler ^^
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

6

13.06.2008, 14:01

Zitat von »"David Scherfgen"«


Ist er jedoch global (was als besserer Stil gilt), dann bekommt er 2 Argumente.


Wiso gilt das als besserer stil ? Hat das irgendwelche Vorteile ?

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

13.06.2008, 15:04

und warum soll der '=' operator immer in der klasse definiert sein? (=, -=, +=, *=, /=)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

13.06.2008, 15:44

Zitat von »"$nooc"«

und warum soll der '=' operator immer in der klasse definiert sein? (=, -=, +=, *=, /=)


Die Operatoren 'sollen' garnicht dort definiert werden. Sie dürfen, mit ausnahme des zuweissungs Operators (Operator =).
@D13_Dreinig

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

13.06.2008, 15:52

Zitat von »"Databyte"«

Zitat von »"David Scherfgen"«


Ist er jedoch global (was als besserer Stil gilt), dann bekommt er 2 Argumente.


Wiso gilt das als besserer stil ? Hat das irgendwelche Vorteile ?


Weil es dann auch anders rum geht.

Zitat von »"$nooc"«

und warum soll der '=' operator immer in der klasse definiert sein? (=, -=, +=, *=, /=)


Weil du damit ja immer das Objekt selbst veränderst.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

13.06.2008, 16:00

Zitat von »"drakon"«

Zitat von »"Databyte"«

Zitat von »"David Scherfgen"«


Ist er jedoch global (was als besserer Stil gilt), dann bekommt er 2 Argumente.


Wiso gilt das als besserer stil ? Hat das irgendwelche Vorteile ?


Weil es dann auch anders rum geht.


Was geht dann andersrum?
@D13_Dreinig

Werbeanzeige