rhs?
-
Bei Copy-Konstruktoren wird der Parameter oft rhs genannt. Was bedeutet das?
-
Es steht für right-hand-side, das macht bei Kopierkonstruktoren also nur begrenzt Sinn - bei binären Operatoren dagegen schon deutlich mehr.
-
wdfghnm, schrieb:
Bei Copy-Konstruktoren wird der Parameter oft rhs genannt. Was bedeutet das?
right hand side. rechte seite. Meyers hat den Stil verbreitet.
Eigentlich bei Operatoren.
bool operator==(Foo lhs,Foo rhs);
oder
Foo operator=(Foo const& rhs);
-
Gibts bessere Ideen als rhs?
-
Bei Copy-Constructor?
-> src (für Source = Quelle) ^^ansonsten sei halt kreativ,
dem Compiler sind die Namen schließlich egal.
-
Ich benutz other.
-
314159265358979 schrieb:
Ich benutz other.
dito.
-
314159265358979 schrieb:
Ich benutz other.
klappt aber nur bei Operator-Methoden - wie nennst du denn den ersten Parameter eines freien Operators?
Ansonsten: Ich denke, die Parameternamen sollten klarmachen, welche Aufgabe der Parameter hat. Das heißt, wenn die Aufgabenteilung klar ist, kann man die verwenden (z.B. src bei Zuweisungen oder dividend/divisor bei op/). Wenn beide Operanden gleichberechtigt sind, nimmt man dann etwas generisches wie lhs/rhs oder left/right.
-
Ich benutze bei freien Funktionen mit nur einem Parameter noch gerne "
obj".
-
CStoll schrieb:
klappt aber nur bei Operator-Methoden - wie nennst du denn den ersten Parameter eines freien Operators?
Hier gings doch ursprünglich um Copy-Ctoren, oder? Zumindest hab ich Pi's Beitrag darauf bezogen.
EOutOfResources schrieb:
Ich benutze bei freien Funktionen mit nur einem Parameter noch gerne "
obj".Wäre mir zu unspezifisch. Da könnte man auch gleich arg oder einfach nur a nehmen...
-
pumuckl schrieb:
CStoll schrieb:
klappt aber nur bei Operator-Methoden - wie nennst du denn den ersten Parameter eines freien Operators?
Hier gings doch ursprünglich um Copy-Ctoren, oder? Zumindest hab ich Pi's Beitrag darauf bezogen.
Beim Copy-Ctor ist "other" auch schon zu unspezifisch, da würde ich eher "src" oder "source" verwenden.
pumuckl schrieb:
EOutOfResources schrieb:
Ich benutze bei freien Funktionen mit nur einem Parameter noch gerne "
obj".Wäre mir zu unspezifisch. Da könnte man auch gleich arg oder einfach nur a nehmen...
Das selbe Argument könnte man auch für "other" verwenden

-
CStoll schrieb:
Beim Copy-Ctor ist "other" auch schon zu unspezifisch, da würde ich eher "src" oder "source" verwenden.
Dort nutze ich übrigens auch "
obj", denn es sollte ja klar sein, was ein Copy-Constructor macht...
-
Wie ich Parameter des Klassentyps benenne:
MyClass::MyClass(const MyClass& origin); MyClass& MyClass::operator= (const MyClass& origin); void MyClass::Swap(MyClass& other); MyClass& MyClass::operator+= (const MyClass& rhs); MyClass operator+ (const MyClass& lhs, const MyClass& rhs);
-
Nexus schrieb:
Wie ich Parameter des Klassentyps benenne:
MyClass::MyClass(const MyClass& origin); MyClass& MyClass::operator= (const MyClass& origin); void MyClass::Swap(MyClass& other); MyClass& MyClass::operator+= (const MyClass& rhs); MyClass operator+ (const MyClass& lhs, const MyClass& rhs);Statt lhs und rhs nemhe ich inzwischen a und b. Das Ergebnis landet in c. Ich gehe also immer von c=a+b aus. Das ist auch ganz praktisch.
other nehme ich auch. Aber mir schwant, daß ich mit Move-Konstruktoren wohl besser src für Move und Copy nehmen sollte und bei swap wieder other.
-
Ich würde "victim" für Move-Semantik vorschlagen.
Ansonsten verwende ich auch "other", "lhs" und "rhs".
Obwohl "source" für Copy-Ctor vermutlich besser ist - mal sehen ob ich mich umgewöhnen mag