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