赞
踩
模板类提供了一个机制:让用户为类定义一个类的模板。使得类中的成员变量或者成员函数的参数,返回值等信息,都可以“动态绑定”类型。就是说,类的定义中,使用的某些数据类型,是在类定义对象的时候,才动态设置。
这个“动态绑定”与模板函数一样,模板函数中是的数据类型,在函数的实际调用中才确定类型。类模板定义的格式如下:
template < class 虚拟类型名>
class 类名
{ 类声明体 };
定义模板类之后,可以使用模板类来定义一个对象。格式如下:
类模板名<实际类型名> 对象名;
类模板名<实际类型名> 对象名(实参列表);
其中,可以分成两部分来理解:
首先,类模板的使用实际上是将类模板实例化成一个具体的类,实例化的格式如下:
类模板名<实际类型名>
那么上面就定义了一个类,可以使用该类来定义一个对象,格式:
类模板名<实际类型名> 对象名;
如果在类模板外定义成员函数,应写成类模板形式:
template <class 虚拟类型参数>
函数类型 类模板名<虚拟类型参数>::成员函数名(函数形参列表)
{……..}
下面举例分析模板类的使用,程序测试代码如下:
程序运行结果如下:
可以看到,我们定义了一个模板类test,在模板类test中使用的形参类型由T符号表示。那么,使用模板类test定义对象如下:
test<int> t(162899);
此时,在尖括号<int>中指定了参数类型T由int类型代替。那么,在模板类test中所有出现T符号的地方使用int类型表示。那么,就实例化一个类,得到的具体类如下:
class test
{
public:
int val;
public:
test(int v)
{
val = v;
}
int get_val(void);
};
int test::get_val(void)
{
return val;
}
所有,在定义模板类对象的时候,给模板类设置具体的类型。实例化一个类。然后,再用该类来定义对象。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。