IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++模版:函数模版初探 -> 正文阅读

[C++知识库]C++模版:函数模版初探

模版是泛型编程的基础。函数模版是通用的函数描述,可以用它来生成具体类型的函数。

下面介绍函数模版的基础知识。

函数的冗余问题

以交换函数为例,针对intdouble类型,需要定义2个函数。这2个函数的实现方式是一样的,唯一的区别是不同的参数类型。如果要满足所有的类型,那就要写很多相同的代码。

// int类型交换
void swapInt(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}
	
// double类型交换
void swapDouble(double& a, double& b) {
  double temp = a;
  a = b;
  b = temp;
}

定义一个通用的函数模版可以解决这个问题。用到哪种类型,就生成该类型的函数。

函数模版语法

函数模版的语法如下,<>包起来的是模版参数列表,可以有多个参数,用逗号分隔。下面的示例只定义了一个。

template<typename T>
函数声明或定义

template :关键字,表示定义模板

typename :关键字,表示一个类型参数

T :变量名,其值代表一个类型。在函数中使用。该变量名一般用大写表示。

定义函数模版

定义交换的函数模版

template<typename T>
void swap(T& a, T& b)
{
  T temp = a;
  a = b;
  b = temp;
}

实例化函数模版

有2种使用函数模版的方式,编译器会生成一个特定版本的函数,这叫做实例化。

  • 编译器自动推导类型,隐式实例化
  • 显示指定类型,显示实例化

示例如下:

int main() {

  // 自动推导类型int,会生成void swap(int& a, int& b)
  int a = 1;
  int b = 2;
  swap(a, b);
  
 	// 显示指定类型double,会生成void swap(double& a, double& b)
  double c = 3.0;
  double d = 4.0;
  swap<double>(a, b);

  return 0;
}

函数模版基础总结

  • 函数的冗余问题
  • 解决该问题的方案:函数模版
  • 如何定义函数模版
  • 2种使用函数模版的方式
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:05:31  更:2021-09-13 09:07:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:02:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码