函数模板的概念和意义

问题

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

交换变量的方法

定义宏代码块

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

定义函数

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

新的需求

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

泛型编程的概念

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

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

C++ 中泛型编程

函数模板

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

函数模板的语法规则

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

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

函数模板的使用

自动类型推导调用

具体类型显示调用

小结

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

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

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

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

相关推荐
QiLinkOS6 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
mit6.8246 小时前
阅读的核心,是再读
c++
upgrador8 小时前
基础知识:C++ STL构造函数的左闭右开惯例及其实现原理
开发语言·c++
凯瑟琳.奥古斯特10 小时前
K次取反最大化数组和解法(力扣1005)
开发语言·c++·算法·leetcode·职场和发展
林中青木10 小时前
CT重构原理及C++代码实现
c++·计算机视觉·重构
满天星830357710 小时前
Protobuf的介绍及使用
c++
☆cwlulu11 小时前
调试排查工具介绍(gdb、strace、Valgrind等)
开发语言·c++·嵌入式硬件·ubuntu
卷无止境11 小时前
C++ 存储类说明符(Storage Class Specifier)大横评
c++·后端
卷无止境11 小时前
C++ 编程的一大坑:非常量全局变量是"万恶之源"
c++·后端
C语言小火车11 小时前
C++ 快速排序(Quick Sort)深度精讲:分治思想、Lomuto 分区法及三数取中优化,面试手撕必会
c语言·开发语言·c++·面试·排序算法·快速排序