| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++图解模板 -> 正文阅读 |
|
[C++知识库]C++图解模板 |
c++模板1.内容引入? 不知道大家是否在高中时背过英语范文模板,以下就是博主的回忆: ? 这篇模板是一些英语比较好的老师写的。 ? 每当碰到感谢信时,我都会狂喜,尽管感谢的内容不同,地点不同,我都可以去根据模板,再根据作文分析模板的那些空对应应该填入什么。 其实呢c++中也用模板,但是这个时候,我们是写模板的人,而编译器变成了那个根据模板照葫芦画瓢的人 2.模板函数c语言写交换函数
? 要实现不同类型的交换,实参不仅要传地址,而且不同类型的函数的名字要保持不同 至于为什么会这样,大家可以去看看我的文章。解释了为什么c语言不支持函数重载: (196条消息) C++入门语法之函数重载与引用的再度解析_龟龟不断向前的博客-CSDN博客 C++写交换函数
? C++在语法上增加了引用和函数重载,在一定程度上弥补了c语言的不足,但是上述代码明明逻辑很相似,却还是要我们去实现不同类型的代码,对于我们这种懒人来说,简直就是煎熬,连我马云爸爸也说过懒人创造世界。 ? 但是计算机他是一个任劳任怨的好铁,不来不会感到疲劳,厌倦,是一个头脑优点笨笨的但是计算能力超强的大铁块。 模板交换函数的语法及其原理语法
? 这样写交换函数是不是就轻松多了,但是我们思考以下,上述代码调用的是一个Swap函数还是两个Swap函数呢? 回顾我们说的模板,是我们写的模板,然后编译器照着模板帮我们写出了 原理图解: 我们也可以通过调试上述代码,转到反汇编,看看调用的函数是否真的是不同的函数。 理解显示实例化和隐式实例化我们那模板加法函数来理解
编译器要自己去推T是什么类型的,就是隐式实例化 而由我们告诉编译器T是什么类型的,就是显示实例化 关于编译器也是懒人这件事我们来看几道模板函数的代码来看看编译器是如何做事的:
? 如果调试了上述代码就会发现,编译器第一次调用的是第一个Add函数,第二次由于我们的指定,编译器调用的是模板加法函数。
3.类模板由于c++的顺序表是用vector表示的,下面咱们的类名也用vector表示 像以前我们实现一个顺序表是这样的。
但是我们无法让 用模板类来实现
如果内部成员函数在类的外面定义的话,要加上类名:: 当然了,本文章并不是重点介绍顺序表vector的实现,而是让大家看看类模板的效果 vector会在后续的文章中更新,敬请期待!
感谢观看! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:19:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |