c++ templates
文章平均质量分 71
ruan875417
这个作者很懒,什么都没留下…
展开
-
【c++ templates读书笔记】【3】非类型模板参数
对于函数模板和类模板,模板参数并不局限于类型,普通值也可以作为模板参数。但非类型模板参数是有限制的,只能是常整数(包括枚举值)或者指向外部链接对象的指针,浮点数、类对象和内部链接对象不允许作为非类型模板参数的。 1、非类型类模板参数例子 #include using namespace std; //Maxsize是一个非类型模板参数 template class Stack{ private原创 2015-09-26 13:35:45 · 395 阅读 · 0 评论 -
【c++ templates读书笔记】【4】技巧性基础知识
1、关键字typename 引入关键字typename是为了说明:模板内部的标识符可以是一个类型。当某个依赖与模板参数的名称是一个类型时,就应该使用typename。 template class MyClass{ typename T::SubType * ptr; // typename说明SubType是定义于T内的一种类型,如果不使用typename,SubType会被认为是T的一原创 2015-09-27 13:36:54 · 573 阅读 · 0 评论 -
【c++ templates读书笔记】【7】模板元编程
模板实例化机制是一种基本的递归语言机制,可以用于在编译期执行复杂的计算。这种随着模板实例化所出现的编译器计算通常被称为template metaprogramming。 例子一,计算阶乘: //Pow.h #ifndef POW_H #define POW_H template class Pow{ public: enum { result = M*Pow::result }; };原创 2015-10-16 15:33:00 · 366 阅读 · 0 评论 -
【c++ templates读书笔记】【5】模板实战
1、模板声明和模板定义如果不在同一个文件中,在另一个文件中使用模板时会出现链接错误。 例子: //Myfirst.h #ifndef MYFIRST_H #define MYFIRST_H #include #include using namespace std; template void print_typeof(T const& x); #endif //Myfirst.cpp原创 2015-09-30 17:03:46 · 330 阅读 · 0 评论 -
【c++ templates读书笔记】【6】模板的多态
C++中的多态分为动多态和静多态。 动多态是通过继承和虚函数来实现的,这两个机制都是在运行期进行处理的。平常所谈论的C++多态指的就是这种动多态。 模板也允许使用单一的泛型标记来关联不同的特定行为,这种借助于模板的关联是在编译器进行处理的,因此把这种多态称为静多态。 一、动多态 动多态的设计思想主要在于:对于几个相关对象的类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功原创 2015-10-08 18:32:41 · 338 阅读 · 0 评论 -
【c++ templates读书笔记】【1】函数模板
1、定义函数模板: template inline T const& max (T const& a, T const& b){ return a < b ? b : a; } 解释:template表明了这是一个函数模板,指定了模板参数区域,typename表明了后面的参数是一个类型名, T是模板参数,它可以用来指定所有的类型,a和b是调用参数,位于模板函数名称后面,在一对()内进行声原创 2015-09-19 14:08:57 · 579 阅读 · 0 评论 -
【c++ templates读书笔记】【2】类模板
1、类模板的声明 template class Stack{ ... } 2、在类模板内部,T可以像其他任何类型一样,用于声明成员变量和成员函数。 template class Stack{ private: std::vector elemes; // 存储元素的容器 public: Stack(); // 构造函数 voi原创 2015-09-23 19:26:32 · 344 阅读 · 0 评论