C++ schreibweise
-
wie kann ich
*a = x noch anders schreiben?
a = a * x oder a * a = x ????
-
ersters
-
HighLigerBiMBam schrieb:
ersters
Wobei es nicht unbedingt identisch mit dem Ausgangsausdruck sein muss, das hängt davon ab was a und x ist (Wobei man davon ausgehen sollte das zumindest das Ergebnis in der Regel identisch sein sollte, wobei der Ausgangsausdruck im Zweifel schneller sein kann, je nach Typ).
-
asc schrieb:
Wobei man davon ausgehen sollte das zumindest das Ergebnis in der Regel identisch sein sollte
Das "sollte" solltest du betonen
. Es zwingt niemand den Programmierer dazu, sich an die gängige Semantik zu halten.Insofern gibt es strenggenommen natürlich keine identische Schreibweise für den Ausdruck, außer man zählt Sachen wie
a.operator*=(x);als andere Schreibweise. Und dies funktoniert wiederum nur bei Klassentypen.
-
Auch bei korrekter Operatorüberladung besteht der Unterschied, dass
a = a * x;den Ausdruckazwei Mal auswertet. Das ist natürlich nur relevant, falls Seiteneffekte im Spiel sind (was hier eher selten vorkommen dürfte). Ausserdem ist die kompakte Schreibweise bei überladenen Operatoren möglicherweise effizienter, weil weniger kopiert wird.Ich verwende in solchen Fällen eigentlich immer arithmetische Zuweisungsoperatoren.