1.简单的实现
前面已经说过函数模板的相关知识点,模板作为C++重要的知识点,不仅仅可以在函数中使用,在类中依然是可以使用的,而且我们熟悉的stack,map等都是模板实现的类,虽然平时用的时候比较少,但是还是很有必要了解其根本原理的。
模板的概念大家肯定都比较熟了,有时常常遇到这样的问题,我们完成了一个类的设计,其内部能将int转化为一个字符串,但是突然遇到一个需求,希望将一个long类型也转化为字符串。此时当然不希望去重写一个功能相同的类,就可以使用模板的形式,将此类设计成模板类。
模板类基本的格式都是:template<class Type> class A,或者template<typename Type> class B;
下面就以上面说的字符串转化函数写出一个模板类:
template <typename Type>
class CToString
{
private:
Type m_typeData;
public:
CToString();
~CToString();
string GetString();
};
template<typename Type>
CToString<Type>::CToString()
{
}
template<typename Type>
CToString<Type>::~CToString()
{
}
template<typename Type>
CToString<Type>::GetString()
{
ostringstream ostr;
ostr << m_typeData;
return ostr.str();
}
int main()
{
CToString<int> ctostr;
cout << ctostr.GetString() << endl;
}