C++模板函数使用
Posted Linux编程学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++模板函数使用相关的知识,希望对你有一定的参考价值。
3 模板函数的使用
函数模板可以增加代码重用率,它使用非特定类型定义类和函数,到实际调用函数的时候,再用特定的类型代替它们。所以,我们用模板函数的技术,优化上面重载的my_max()函数。根据模板函数的定义如下:
template < class 虚拟类型名>
class 类名
类声明体 ;
其中,template<class 虚拟类型名> 中的“class”可以使用typename关键字指定一个类型的名称。例如 class TYPE,表示TYPE是一个类型的名称。例如:
template <class T1> class classname;
template <typename T1 > class classname;
如果类型形参表有多个类型,每个类型之间可以使用逗号“,”分隔,如下:
template <class T1, class T2, class T3> class classname;
template <typename T1, typename T2, typename T3> class classname;
那么,在调用一个模板函数的时候,根据传递给模板函数的参数类型,才确定T1,T2,T3表示的类型,才定义一个具体的函数。最终,调用该函数。
程序测试代码如下:
程序运行结果如下:
可以看到,我们定义了一个模板函数:
template <class T>
T my_max(T x, T y) //定义模板函数
return (x > y) ? x : y;
其中,类型参数表中定义class T,表示 T 是一个类型。然后,在定义my_max()函数的时候,就使用T作为数据类型。
那么,在my_max()模板函数的实际调用中,根据操作数据的类型,再决定T是那个数据类型。例如:
(1) 调用my_max(1, 5); 参数是一个int类型,所以,对应 my_max(T x, T y);函数,那么,T就是int类型。
(2) 调用my_max('A', 'B'); 参数是一个char类型,所以,对应 my_max(T x, T y);函数,那么,T就是char类型。
所以,模板函数中的类型参数,是根据函数的实际调用,再确定参数类型。通过这个例子,我们可以看到模板函数的使用,大大提高代码的重用性。
以上是关于C++模板函数使用的主要内容,如果未能解决你的问题,请参考以下文章