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)
{
}

您的构造函数包含一个赋值,该赋值将为引用引用的对象赋值(除非您初始化它,否则它不会引用任何东西)。