C++中的模板与泛型编程学习
来源:互联网 发布:淘宝私密发货 编辑:程序博客网 时间:2024/05/10 22:28
1.模板与泛型编程
C++中的模板包括函数模板和类模板两种。在编程中,我们使用模板,就可以独立于任何特定类型的方式来编写代码,例如标准模板库中的vector容器,就是一个模板类,通过vector<int>,vector<String>等,就可以用vector来包含任何类型的数据。使用类模板或函数模板的编程,我们成为是泛型编程,或模板编程。
2.函数模板的定义和使用
(1)函数模板的定义
template <typename T> int compare(T v1, T v2) { if (v1 < v2) return -1; if (v2 < v1) return 1; return 0;}
备注:
A)template是c++中定义模板的关键字,<typename T, class U>成为模板的模板形参表,其中typename和class等价的。
(2)模板函数的使用
compare(1, 2);compare(1.5,3.8);compare("hello","world");
备注:
A)在使用模板函数时,编译器会根据传入函数的实参类型,来对应的模板形参的实际类型。因此使用模板函数时,不需要显示执行模板形参表的实际类型。
3.类模板的定义和使用
(1)类模板的定义
template <class Type> class Queue {public: Queue(); Type & front(); void push(const Type &); void pop();private: //…}
备注:
A)template <class Type>为定义类模板或函数模板的八股文
(2)类模板的使用
Queue<int> qi;Queue<String> qs;
备注:
A)在使用类模板时,需要显示指定类模板的类型。例如,Queue<int>其中使用整型来执行模板形参的实际类型。
4.几个其他的问题
(1)无论是类模板还是函数模板,都是一个蓝图,本身不是一个类或函数,编译器用模板产生指定的类或函数的特定类型版本。产生模板的特定类型实例的过程称为模板的实例化
(2)有继承语言特性带来的多态性,是程序运行时体现出来的,称为运行时多态性。泛型编程的多态性,是在编译阶段体现的,称为编译时多态性。
(3)Java中也有泛型编程,是从C++中借鉴过去的,是类似的。
0 0
- C++中的模板与泛型编程学习
- C++:模板与泛型编程
- [C++]模板与泛型编程
- 【C++】模板与泛型编程
- 《C++primer(第五版)》学习之路-第十六章:模板与泛型编程
- 重新学习《C++Primer5》第16章-模板与泛型编程
- 《C++Primer》 3.19 模板与泛型编程
- Effective C++(七)模板与泛型编程
- Effective C++(七)模板与泛型编程
- Effective C++(七)模板与泛型编程
- effective C++: 7模板与泛型编程
- 【c++primer】第十六章:模板与泛型编程
- c++primer要点-模板与泛型编程
- [C++] 模板与泛型编程(1)
- [C++] 模板与泛型编程(2)
- [C++]模板与泛型编程(3)
- C++Primer---模板与泛型编程(一)
- <<Effective C++>>读书笔记7: 模板与泛型编程
- 总结——stm32之keil开发环境搭建
- 云计算演义(5)VMWare已经哑火,私有云走下巅峰,OpenStack,将做鸟兽散
- Python学习08:面向对象思想
- POJ 1201 Intervals 差分约束系统
- 整理的学习网站(不定期补充···)
- C++中的模板与泛型编程学习
- python的numpy包中矩阵总结
- 循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论
- Word Ladder II
- Android简易实战教程--第四十二话《Spinner下拉级联效果》
- python操作MySQL数据库(增 删 改 查)续篇
- Android Studio安装
- A标签中通过href和onclick传递的this对象
- 10个java基础面试题