# Operator-Überladung



## gastausbern (16. Mai 2004)

Hallo!

ich habe ein Problem mit der Operator-Überladung. Das ist eine Aufgabe für mein seminar,
und mit diesem Problem kenne ich mich überhaupt nicht aus.
ich weiss zwar, dass es die OP-Überladung in C und C++ gibt, was aber dahinter steckt, davon habe ich keine ahnung. :cry: 

vielleicht kann mir ja jemand von euch bei diesem Problem helfen:


erst einmal : was ist überhaupt, in einer kurzen Def. ,  OPerator-Überladung?

2. gibt es Anwendungsfälle, in denen OP-Überladung sinnvoll eingesetzt werden kann?

3. Welche Probleme können bei der OP-Überladung entstehen?

4. Wie wird genau mit diesen Problemen in anderen Programmiersprachen umgegangen...? z.B. in C oder C++, oder anderen...



vielen dank im voraus...


----------



## Beni (16. Mai 2004)

*1.* In Java gibt es _keine _Op-Überladung

Eine Op-Überladung ist dann, wenn du einer Operation, z.B. "+" eine zusätzliche Bedeutung geben kannst. Damit Objekte mit diesen Operationen verknüpft werden können, die normalerweise nicht verknüpft sind.

*2.* z.B. wenn du eine Klasse "Vector5d" (5 dimensionaler Vektor) schreibst, kann ein "+" als Addition zweier 5-d Vektoren definiert werden.

*3.* Die Gefahr besteht bei Leuten, die Operationen definieren, die nicht benötigt werden (wird unübersichtlich), oder wenn sie einfach "seltsam" definiert werden. Also wenn "+" plötzlich die Negation ist.

*4.* So wie ich C / C++ kenne, heisst es da einfach: "Der Programmiere ist selbst schuld." :wink:

mfg Beni


----------



## P3AC3MAK3R (16. Mai 2004)

> Der Plusoperator stellt gleichzeitig eine Ausnahme dar, er ist nämlich der einzige Operator, der bei Java überladen wird, denn Java unterstützt normalerweise keine Operatorüberladung im Gegensatz zu C++.



Quelle: http://www-ti.informatik.uni-tuebingen.de/~heim/lehre/proseminar_ss98/andreas/


----------



## Illuvatar (16. Mai 2004)

P3AC3MAK3R hat gesagt.:
			
		

> > Der Plusoperator stellt gleichzeitig eine Ausnahme dar, er ist nämlich der einzige Operator, der bei Java überladen wird, denn Java unterstützt normalerweise keine Operatorüberladung im Gegensatz zu C++.
> 
> 
> 
> Quelle: http://www-ti.informatik.uni-tuebingen.de/~heim/lehre/proseminar_ss98/andreas/



Wie soll man den Plus-Operator überladen?


----------



## Beni (16. Mai 2004)

Ich nehme mal an das bezieht sich auf die Strings (die man mit Plus zusammenfügen kann).
Aber ob das wirklich "überladen" ist?  ???:L


----------



## L-ectron-X (16. Mai 2004)

Ich glaube nicht. Denn beim Überladen kann der Programmierer auf die eigentliche Funktion Einfluss nehmen, z.B. beim Überladen von Methoden.
Den + Operator kann man aber in Java nicht in seiner Funktion beeinflussen.


----------



## P3AC3MAK3R (16. Mai 2004)

Hier ist noch ein klärender Thread aus den JTFs:

http://forum.java.sun.com/thread.jsp?forum=1&thread=1598&tstart=0&trange=15


----------

