c++模板笔记

本文深入讲解了C++中的类模板和函数模板的概念及其使用方法。介绍了如何通过类型参数实现类的抽象,以及模板实例化的具体过程。同时探讨了模板参数的不同种类及其实例化时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类模板

:将一些数据类型 统一的表达
对类进行抽象 元素的类型是不同的 其他是相同的
在定义类的时候给他一个班或多个的参数
参数表示不同的数据类型

C++的类模板的写法如下:

template <类型参数表>
 lass 类模板名
{
成员函数和成员变量
};

类型参数表的写法就是:
class 类型参数1, class 类型参数2, …

将类模板 先实例化为一个指定数据类型的类
再用这个类去实例化得到一个对象!!!!!
Pair

函数模板

: 只是在声明的时候要加上模板的声明

C++编译器遵循以下优先顺序:
Step 1: 先找参数完全匹配的普通函数(非由模板实例化而得的函数)
Step 2: 再找参数完全匹配的模板函数
Step 3: 再找实参经过自动类型转换后能够匹配的普通函数
Step 4: 上面的都找不到, 则报错

类模板的参数声明中可以包括非类型参数

template <class T, int elementsNumber>

•非类型参数: 用来说明类模板中的属性 固定属性 例如成员数组的长度!个数特性
•类型参数: 用来说明类模板中的属性类型, 成员操作的参数类型和返回值类型
类型参数 只要有不同 实例化出来的类就是不兼容的!

区分四个概念:
类模板 模板类 普通类、
类模板是模板 他可以实例化出模板类
模板类是类
普通类就是类

类模板派生出类模板
模板类 (即类模板中类型/非类型参数实例化后的类)派生出类模板
普通类派生出类模板
模板类派生出普通类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值