C++从0到1基础教程之泛型编程

前言

上一章节主要是详细介绍了C++虚函数和多态,不清楚的能够回顾一下哦。本章节主要针对于C++泛型编程作个详细介绍。算法

什么是模板

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是建立泛型类或函数的蓝图或公式。库容器,好比迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。那么什么是模板呢?其实很简单,模板就是把类型当作未知量进行参数化处理的一种编程方式。例如咱们在求解二者最大值的问题时候,由于数据类型不一样的状况下,咱们可能须要书写一下集中形式的函数:编程

而模板编程就是把用到的类型当作一个未知量,例如用标识符type替换,则max可函数能够改成以下代码:微信

显然C++中没法识别未声明的标识符,因此要先告诉编译器咱们这里将会要用到一个未知类型,采用的语法是template <typename type>,故上述代码能够改成以下代码,程序依然能成功运行。代码以下:app

函数模板

函数模板就是函数中用到了未知类型函数就是函数模板,上文中其实咱们已经学习了函数模板,主要注意的问题是函数模板的调用主要有如下两种:编辑器

  • 显式调用函数

  • 隐式调用学习

综合案例以下:测试

上述代码中,typename和class通用的哦,咱们通常用函数模板用的都是隐式调用,能少写码何乐而不为。要注意的是当函数模板的类型是自定义类型时,咱们必定要考虑运算符是否知足基本数据类型的运算符规则,若是不知足必定要本身重载运算符。以下代码:flex

类模板

类模板就是类中用到了未知类型。类模板其实也很简单,注意项主要是如下几个点:url

  • 类模板必须显式调用

  • 类模板中的类不是完整的类型用到类名的地方都须要采用类名<未知类型>的用法

类目中常常会存在模板嵌套的状况,模板嵌套只要剥好洋葱便可。以下代码:


尾言

本栏目到这里结束了,做业:采用模板写一个list链表,测试一下不一样数据类型的链表。




本文分享自微信公众号 - C语言编程基础(goodStudyCode)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索