目录
泛型编程
函数模板
函数模板概念
函数模板格式
类模板
泛型编程
(对广泛的类型进行编程)
![](https://i-blog.csdnimg.cn/blog_migrate/c0fcf64b7d598354ec3d5d5a6b790209.png)
函数模板
函数模板概念
![](https://i-blog.csdnimg.cn/blog_migrate/e0fcc33d69f992989e9e82750b2fbe33.png)
函数模板格式
![](https://i-blog.csdnimg.cn/blog_migrate/f444ee4c42753320fa18afa911d30044.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b0a663bba8ffcf2d3033636583901e94.png)
(<>里可以用的是class和typename这两个关键字)
(但注意调用的可不是一个函数哦)
函数并没有减少,只是编译器把程序员的工作做了。
例:
![](https://i-blog.csdnimg.cn/blog_migrate/e4cf9a681b4b5cfb4b7c6eee35c7fc0a.png)
(库里面也有swap函数!!!!!)
![](https://i-blog.csdnimg.cn/blog_migrate/c8e2d0f3ae53e38a3a22aa7785cc98b2.png)
下面来看一个例子:
(注意:类模板必须显示实例化)![](https://i-blog.csdnimg.cn/blog_migrate/a3718e77ed58ab34c3e31ab11f9f4102.png)
同时,下面的两个也是可以同时存在的
![](https://i-blog.csdnimg.cn/blog_migrate/bae6cb6c0e63200d1bfee0369b27a29e.png)
(但如果是int类型的Add,调用的是第一个)
类模板
例:
![](https://i-blog.csdnimg.cn/blog_migrate/160429b0b8f134461952a1c07ea070c8.png)
(类模板最好声明和定义放在一个文件下,否则会出现链接错误的问题)