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函数,它们的参数都为空,跟据我理解的函数重载的概念是不可以这样的,但是却又编译运行通过了,有点不解,故来问问。
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函数,它们的参数都为空,跟据我理解的函数重载的概念是不可以这样的,但是却又编译运行通过了,有点不解,故来问问。
关于 const 可以看看 effective c++ 第21条
http://ecmec.51.net/ECMECWEB/EC/INDEX.HTM