【C++】初识模板,拿来吧你

2022-11-15 16:01:11 浏览数 (1)

文章目录
  • 一、泛型编程
  • 二、函数模板
    • 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;
}
......

使用函数重载虽然可以实现,但是有一下几个不好的地方:

  1. 重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数
  2. 代码的可维护性比较低,一个出错可能所有的重载均出错

这样子太过于麻烦了,那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢❓有的

0 人点赞