With respect to the following code segment:

```
struct Pair{
    string name;
    double val;
}
vector<Pair> pairs;
double& value(const string& s)
{
   for (int i=0; i<pairs.size(); i++)
      if (s==pairs[i].name) return pairs[i].val;
   Pair p = {s,0};
   pairs.push_back(p);
   return pairs[pairs.size()-1].val;
}

```

The author states

> 
> For a given argument string, value() finds the corresponding floating-point object (not the value of the corresponding floating-point object); it then returns a reference to it. 
> 
> 
> 

What's the differce between "floating-point object" and its value?