模板 C++

C++的另一种编程思想为泛型编程 主要技术就是模板
C++提供两种模板机制函数模板类模板
函数模板
作用:建立一个通用函数 其函数返回值和参数类型可以不具体指定 用一个虚拟类型代替
语法:

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

在这里插入图片描述
例如:在这里插入图片描述
两种方式使用函数模板
1.自动类型推导
不写出虚拟类型 系统自动识别 必须推导出一致的类型 才可以使用
2显示指定类型

int a=10,b=20;
1.自动类型推导
mySwap(a,b);
//2.显示指定类型
mySwap<int>(a,b);

注意:写函数模板 函数中需要有虚拟类型 函数模板才可以被调用
普通函数与函数模板区别
在这里插入图片描述
例如: char转换成int
普通函数与函数模板的调用规则
在这里插入图片描述
既然提供了函数模板 最好不要提供相同的普通函数 否则容易出现二义性
模板的局限性
在这里插入图片描述
在这里插入图片描述
例如
在这里插入图片描述
总结:
利用具体化的模板 可以解决自定义类型的通用化
学习模板不是为了写模板 而是在STL中能够运行系统提供的模板
类模板
类模板的基本语言与函数模板相同 函数声明或定义变成了类的创建
类模板和函数模板的区别
在这里插入图片描述
默认参数用=号 template < typename T=int>;
类模板中的成员函数创建时机
在这里插入图片描述
类模板对象做函数参数
在这里插入图片描述
在这里插入图片描述
指定传入类型最常用
在这里插入图片描述
在这里插入图片描述
类模板与继承
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
类模板中构造函数和成员函数在类外实现
在这里插入图片描述
在这里插入图片描述
类模板分文件编写
在这里插入图片描述
类模板与友元
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

参考自:https://www.bilibili.com/video/BV1et411b73Z?p=181

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值