一、什么是泛型编程
当我们设计函数或者类时,有时候需要对应不同数据类型编写相同的代码,这样的话不仅有代码冗余,而且更加的加大程序员开发事件,降低开发效率,因此泛型编程就是解决此类情况----不同的数据类型可以重用一个函数,或者可以创建不同数据类型的相同类。
二、泛型的声明
template <typename name ...>
样例:
#include <iostream>
using namespace std;
template <typename _Tp>
_Tp Max(_Tp a,_Tp b)
{
return a > b ? a : b;
}
int main()
{
cout << Max(1, 2) << endl; //传入两个整型
cout << Max(10.55, 2.33) << endl;//传入两个浮点型
return 0;
}
三、泛型的特性
1、显示和隐式传值
2、传常量
注意:当模板规定变量类型时调用的时候必须显示调用,并且传参只能传常量。
3、默认情况
4、普通函数和模板函数的优先级
可以看到普通函数的优先级是高于模板函数的
四、类模板
1、模板类样例
#include <iostream>
using namespace std;
template <typename _Ty1,typename _Ty2>
class Data
{
public :
Data();