C++ template
GaryGao99
这个作者很懒,什么都没留下…
展开
-
二、类模板( Class Templates)
1 类似于函数模板,类模板也是类型的参数化。例子,在头文件中类模板声明和定义:#include <vector> #include <stdexcept> template <typename T> class Stack { private: std::vector<T> elems; // elements public: void push(T con原创 2017-12-27 19:28:30 · 1132 阅读 · 0 评论 -
一、函数模板(Function Template)
本系列是《C++Template》(作者:David Vandevoorde, Nicolai M. Josuttis)的学习总结。一:函数模板(Function Template)所谓函数模板是由参数表示的一系列的函数。函数模板可以被不同的类型参数所调用,使用时和普通的函数功能一样,不同的是函数模板在定义的时候参数的类型是未知的。1.1.、例子,模板定义template <typename T>原创 2017-12-23 16:52:31 · 7761 阅读 · 1 评论 -
三、非类型模板参数(Nontype Template Parameters)
对于函数模板和类模板,模板参数不一定必须是类型,也可是是常规的数值。当以类型(type)作为模板参数的时候,代码中未决定的是类型;当以一般的数字(non-type)作为模板参数的时候,代码中待定的内容便是某些数值。使用者这种模板必须要显示指定数值,模板才能实例化。1、非类型类模板参数(Nontype Class Template Parameters)之前章节中的列子中Stack类中使用vector原创 2017-12-29 16:24:27 · 5262 阅读 · 1 评论 -
四、模板使用的基础技术(Tricky Basics)
本章讲解高级的基础概念,包括关键字typename的另外一种使用,将成员函数和嵌套类定义为模板,模板模板参数(template template parameters),0值初始化和在类模板中使用字符串常量的一些细节等等。1、关键字typename关键字typename目的是向编译说明它所有修饰的标识符是一个类型而不是其它的什么东西。如下:template <typename T> class M原创 2018-01-05 20:14:49 · 441 阅读 · 0 评论