我正在将 Qt 与 C++ 一起使用,但我似乎不理解一些让我感觉不一致的东西。我有一个方法可以操纵作为参数发送给它的变量,这是它的声明aManipulation(qreal& a); //reference to a qreal
我使用QPointF
其中包含两个 qreal 值。该类可以通过一个方法返回一个 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());
为什么将对象而不是对对象的引用发送到需要对象引用的方法就足够了?我很困惑,因为用纯指针这样做会很清楚。