我有一个通过引用获取变量的类。类中的函数需要调用另一个打印对象的函数。将引用对象从<ComboBox Name="cboDefaultUser"
HorizontalAlignment="Stretch"
VerticalAlignment="Top"
ItemsSource="{Binding Users}"
DisplayMemberPath="Username"
SelectedItem="{Binding TheEntity.UiUser,
UpdateSourceTrigger=PropertyChanged,
NotifyOnSourceUpdated=True,
NotifyOnValidationError=True}" />
传递到process()
时会出现问题。我可以将引用从一个函数传递给另一个函数吗?如何使用参考完成此操作以及在这种情况下的最佳做法是什么?
(我知道可以采用其他方法,例如使用指针或通过值传递给类。但是,我想知道参考的解决方案。)
disp()
答案 0 :(得分:0)
我可以将参考对象传递给函数吗?
迂腐点:没有&#34;参考对象&#34;。引用不是对象。
但是,是的,可以传递对函数的引用。
将参考对象从
时出现问题process()
传递到disp()
你已经在那里传递了一个参考。该计划的那部分是正确的。
你的确存在问题:
Abc::Abc(double&, double&);
float x=2.2, y=10.5 // anohter bug: probably intended to have a semicolon here
Abc obj1(x,y);
当一种类型的对象(float
)绑定到通过继承(double&
)不相关的另一种类型的引用时,操作数将转换为目标类型({{1} })。转换的结果是临时r值。非const l值引用不能绑定到r值,因此程序格式不正确。
即使引用可以绑定(例如,如果使用允许它的语言扩展,或者如果使用const引用),临时的生命周期只会延长引用变量的生命周期被绑定,这是构造函数的参数。构造函数完成后,成员引用将引用其生命周期已经结束的临时文件,因此使用这些引用将具有未定义的行为。
简单解决方案:使用与参考相同类型的变量:double
。