函数模板的概念和意义

问题

C++ 中有几种交换变量的方法?

交换变量的方法

定义宏代码块

  • 优点:代码复用,适合所有类型
  • 缺点:编译器不知道宏的存在,缺少类型检查

定义函数

  • 优点:真正的函数调用,编译器对类型进行检查
  • 缺点:根据类型重复定义函数,无法代码复用

新的需求

C++ 中有没有解决方案集合两种方法的优点?

泛型编程的概念

不考虑具体数据类型的编程方式

Swap 泛型写法中的 T 不是一个具体的数据类型,而是泛指任意的数据类型

C++ 中泛型编程

函数模板

  • 一种特殊的函数可用不同类型进行调用
  • 看起来和普通函数很相似,区别是类型可被参数化

函数模板的语法规则

template 关键字用于声明开始进行泛型编程

typename 关键字用于声明泛指类型

函数模板的使用

自动类型推导调用

具体类型显示调用

小结

函数模板是泛型编程在 C++ 中的应用方式之一

函数模板能够根据实参对参数类型进行推导

函数模板支持显示的指定参数类型

函数模板是 C++ 中重要的代码复用方式

相关推荐
No0d1es9 分钟前
2025年第十六届蓝桥杯青少组省赛 C++编程 中级组真题
c++·青少年编程·蓝桥杯·省赛
千禧皓月19 分钟前
【C++】基于C++的RPC分布式网络通信框架(二)
c++·分布式·rpc
AA陈超44 分钟前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-08 点击移动
c++·游戏·ue5·游戏引擎·虚幻
·白小白1 小时前
力扣(LeetCode) ——209. 长度最小的子数组(C++)
c++·算法·leetcode
ohnoooo91 小时前
251106 算法
数据结构·c++·算法
卡提西亚2 小时前
C++笔记-24-文件读写操作
开发语言·c++·笔记
m0_748248022 小时前
C++ 异常处理全解析:从语法到设计哲学
java·c++·word
m0_748248023 小时前
C++20 协程:在 AI 推理引擎中的深度应用
java·c++·人工智能·c++20
QT 小鲜肉4 小时前
【Git、GitHub、Gitee】按功能分类汇总Git常用命令详解(超详细)
c语言·网络·c++·git·qt·gitee·github
派大星爱吃猫4 小时前
C++中的inline函数(内联函数)
c++·inline·内联函数