私は C++ で Qt を使用していますが、矛盾していると思われるものを理解していないようです。パラメータとして送信される変数を操作するメソッドがあります。ここにその宣言がありますaManipulation(qreal& a); //reference to a qreal
QPointF
2 つの qreal 値を含む whichを使用します。クラスは、メソッドを介して qreal 値を返すか、別のメソッドを介して参照 qreal& を返すことができます。だから私はこれらのケースに興味があります:
qreal value = 1;
QPointF point; point.setX(1);
//OK -- this works eventhough I don't send it as a qreal&
aManipulation(value);
//FAIL -- actually trying to send a qreal& reference is an error
aManipulation(value&);
//OK -- this method however returns a qreal&
aManipulation(point.rx());
//FAIL -- this just returns the '1' and I understand it cannot be referenced
aManipulation(point.x());
オブジェクトの参照を必要とするメソッドに、オブジェクトへの参照ではなく、オブジェクトを送信するだけで十分なのはなぜですか? 純粋なポインターでこれを行うと非常に明確になるため、私は混乱しています。