c ++将float作为对象之间的引用传递并设置为struct给出:必须初始化引用类型的成员
c++ passing float as reference between objects and setting into struct gives :a member of reference type must be initialized
我有 float 变量 它的初始值作为引用传递给函数。
我需要将此参考值设置为保存数据的结构。
有些工作已经完成,我需要取回更新后的值。
这是伪代码中的流程:
class Foo
{
float initVal = 20;
GUImanager gUImanager;
gUImanager.SetVariableValue(initVal);
// the initVal float varibal should updated from
// GUImanager class with the new values here .
};
struct dataHolder
{
dataHolder(float& _floatref)
{
// here i get the compilation error :
//error C2758: 'dataHolder::floatHolder' : a member of reference type must be initialized
floatHolder = _floatref;
}
float& floatHolder;
};
class GUImanager
{
public:
void GUImanager::SetVariableValue(float const& _floatRef)
{
dataHolder* pdataHolder = new pdataHolder(_floatRef);
}
float i = 0.0f;
while(true)
{
pdataHolder.floatHolder+ = i++;
}
}
我正在阅读一些与此主题有关的答案,但没有找到任何可以帮助我解决问题的答案。
如何设置编译器将通过编译的引用?
必须初始化引用,初始化成员的地方是初始化列表:
dataHolder(float& _floatref) : floatHolder(_floatref)
{
}
您的构造函数包含一个赋值,该赋值将为引用引用的对象赋值(除非您初始化它,否则它不会引用任何东西)。
我有 float 变量 它的初始值作为引用传递给函数。
我需要将此参考值设置为保存数据的结构。
有些工作已经完成,我需要取回更新后的值。
这是伪代码中的流程:
class Foo
{
float initVal = 20;
GUImanager gUImanager;
gUImanager.SetVariableValue(initVal);
// the initVal float varibal should updated from
// GUImanager class with the new values here .
};
struct dataHolder
{
dataHolder(float& _floatref)
{
// here i get the compilation error :
//error C2758: 'dataHolder::floatHolder' : a member of reference type must be initialized
floatHolder = _floatref;
}
float& floatHolder;
};
class GUImanager
{
public:
void GUImanager::SetVariableValue(float const& _floatRef)
{
dataHolder* pdataHolder = new pdataHolder(_floatRef);
}
float i = 0.0f;
while(true)
{
pdataHolder.floatHolder+ = i++;
}
}
我正在阅读一些与此主题有关的答案,但没有找到任何可以帮助我解决问题的答案。 如何设置编译器将通过编译的引用?
必须初始化引用,初始化成员的地方是初始化列表:
dataHolder(float& _floatref) : floatHolder(_floatref)
{
}
您的构造函数包含一个赋值,该赋值将为引用引用的对象赋值(除非您初始化它,否则它不会引用任何东西)。