template <class TYPE>
class CInterlockedType
{public:    
   CInterlockedType()
   { }
   CInterlockedType(const TYPE& TVal)
   {
   m_TVal = TVal;
   }
   virtual ~CInterlockedType()
   { }    operator TYPE() const
   {                              
      return(GetVal()); //注意:这个函数调用语句
   }protected:  
   TYPE& GetVal()//注意:这个函数 
   { 
      return(m_TVal); 
   }   const TYPE& GetVal() const//注意:这个函数
   { 
      return(m_TVal); 
   }private: 
   TYPE m_TVal;
};注意这是个类模板,它重载了GetVal函数,它们的参数都为空,跟据我理解的函数重载的概念是不可以这样的,但是却又编译运行通过了,有点不解,故来问问。