8.泛型

2020-05-06  本文已影响0人  迷心迷

泛型历史和概述

泛型发展
C++泛型
template vs generic

模板是C++泛型编程的基础。
泛型更来指一种编程思想。

为什么需要泛型

泛型函数

泛型函数定义
类型形式参数
命名类型形式参数
泛型类型

IntStack

05
泛型Stack
06 07 08
扩展泛型类型
类型约束
类型约束的应用

关联类型

关联类型的应用

15 16
关联类型的约束
在关联类型约束里使用协议
泛型 where 子句

C1 必须遵循 Container 协议(写作 C1: Container );
C2 也必须遵循 Container 协议(写作 C2: Container );
C1 的 ItemType 必须和 C2 的 ItemType 相同(写作 C1.ItemType == C2.ItemType ); C1 的 ItemType 必须遵循 Equatable 协议(写作 C1.ItemType: Equatable )。


19

someContainer 是一个 C1 类型的容器;
anotherContainer 是一个 C2 类型的容器;
someContainer 和 anotherContainer 中的元素类型相同; someContainer 中的元素可以通过不等操作符( != )检查它们是否不一样。

带有泛型 Where 子句的扩展
21 22
关联类型的泛型 Where 子句

泛型下标

泛型编程思维

上一篇 下一篇

猜你喜欢

热点阅读