第一:类模板
定义:
template<class T_TypeName>
class Test{
class Test{
public:
Test():m_T_n(5){}
~Test(){};
void prientDemo();
Test():m_T_n(5){}
~Test(){};
void prientDemo();
public:
void SetN(const T_TypeName &N){ m_T_n = N;}
T_TypeName GetN(void)const{ return m_T_n ; }
private:
T_TypeName m_T_n;
void SetN(const T_TypeName &N){ m_T_n = N;}
T_TypeName GetN(void)const{ return m_T_n ; }
private:
T_TypeName m_T_n;
};
类成员函数定义:
template<class T_TypeName>//模板外的函数定义,必须要加上这一段
void Test<T_TypeName>::prientDemo()
{
printf("This is a demo");
}
void Test<T_TypeName>::prientDemo()
{
printf("This is a demo");
}
类实例化应用:
Test<int> TestDemo;
TestDemo.prientDemo();
TestDemo.SetN(10);
int N = TestDemo.GetN();
TestDemo.prientDemo();
TestDemo.SetN(10);
int N = TestDemo.GetN();
第二:函数模板
定义:
template <class T_Type>
T_Type Fun(T_Type X)
{
T_Type m_x;
m_x = X;
return m_x;
}
函数使用:
int iFun = Fun(10);
double dFun = Fun(6.666);
double dFun = Fun(6.666);