文章目录- 一、泛型编程
- 二、函数模板
- 1.函数模板概念
- 2.函数模板格式
- 3.函数模板的原理
- 4 函数模板的实例化
- 1. 隐式实例化
- 2. 显式实例化
- 5.模板参数的匹配原则
- 三、类模板
- 1 类模板的定义格式
- 2 类模板的实例化
- 四、模板不支持分离编译(了解)
- 1.函数模板概念
- 2.函数模板格式
- 3.函数模板的原理
- 4 函数模板的实例化
- 1. 隐式实例化
- 2. 显式实例化
- 5.模板参数的匹配原则
- 1 类模板的定义格式
- 2 类模板的实例化
一、泛型编程
如何实现一个通用的交换函数呢? 我们可以针对不同的数据类型写出不同的交换函数
代码语言:javascript复制void Swap(int& left, int& right)
{
int temp = left;
left = right;
right = temp;
}
void Swap(double& left, double& right)
{
double temp = left;
left = right;
right = temp;
}
void Swap(char& left, char& right)
{
char temp = left;
left = right;
right = temp;
}
......
使用函数重载虽然可以实现,但是有一下几个不好的地方:
- 重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数
- 代码的可维护性比较低,一个出错可能所有的重载均出错
这样子太过于麻烦了,那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢❓有的