形如:Typename& Name(Typename X){}的函数为什么要声明为Typename&(关键词-Get)(语言-c++)

问题:为什么GetValue函数返回类型为T&型?
同样的,形如:

Typename& NameTypename X){}

的函数为什么要声明为Typename&?
还有,如下代码明明要返回T&型,为什么返回的也只是T型?
求神犇解答


template <typename T> 
class HoldVarTypeT 
{ 
    private: 
    T value; 
    public: 
    void SetValue (const T& newValue) { value = newValue; } 
    T& GetValue() {return value;} 
};

?啥意思