为神魔要学习模板,学习模板是为了给STL做铺垫(后面会出专门章节的)

C++提供两种模板机制函数模板 类模板

本节只讲函数模板(类模板和函数模板用法基本一致)

首先声明下面是一个模板

template<class T>

函数模板

T f_swap(T a,T b){}
#include<iostream>
using namespace std;

template<class T>
void f_swap(T &a, T &b) {
	T f = a;
	a = b;
	b = f;

}
int main() {
	int a = 10;
	int b = 20;
	f_swap<int>(a, b);
	cout << a <<endl;
	cout << b << endl;
}

在这里插入图片描述

两种方式使用函数模板(用上面代码举例)

  • 1.自动推导(不会发生隐式类别转换)
int a=10;
int b=20;
f_swap(a,b);
  • 2.显示指定各类型(可以发生隐式类别转换)
int a=10;
int b=20;
f_swap<int >(a,b)

函数模板注意事项

  • 自动类型推导必须推出一致的数据类型T才可以使用

  • 模板必须要确定T的类型才可使用
    在这里插入图片描述

出错因为函数没有确定T类型

在这里插入图片描述

好了

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐