Ich habe die folgende Implementierung des Operators * wie folgt gesehen:
%Vor%Ich habe hier zwei Fragen:
So dass Sie etwas wie Rational a, b, c; (a * b) = c;
nicht tun können.
Nein.
Beachten Sie, dass die Rückgabe von Scott Meyers schrieb einen Hinweis zu diesem Thema: Deklaration by-value Funktion Rückgabewerte const wird
verhindern, dass sie in C ++ 0x an Rvalue-Referenzen gebunden sind.
Weil rvalue-Referenzen dazu beitragen sollen, besser zu werden
die Effizienz von C ++ - Code ist wichtig zu nehmen
Berücksichtigung der Wechselwirkung von konstanten Rückgabewerten
und die Initialisierung von Rvalue Referenzen, wenn
Spezifizieren von Funktionssignaturen. const Rational
anstelle von Rational
nicht nur unsinnige Zuweisungen verhindert, sondern auch die Semantik verschiebt (weil Rational&&
nicht an const Rational
bindet) und daher in C ++ 0x.
Tags und Links c++