模板与泛型编程
--模板定义[续]
四、模板类型形参
类型形参由关键字class或 typename后接说明符构成。在模板形参表中,这两个关键字具有相同的含义,都指出后面所接的名字表示一个类型。
模板类型形参可作为类型说明符在模板中的任何地方,与内置类型说明符或类类型说明符的使用方式完全相同。具体而言,它可以用于指定返回类型或函数形参类型,以及在函数体中用于变量声明或强制类...
分类:
编程语言 时间:
2016-05-12 21:58:10
阅读次数:
229
模板与泛型编程
--类模板成员
引言:
这一节我们介绍怎样实现前面提到的Queue模板类。
标准库将queue实现为其他容器之上的适配器。为了强调在使用低级数据结构中设计的编程要点,我们将Queue实现为链表。实际上,在我们的实现中使用标准库可能是个更好的决定!!-_-。
1、Queue的实现策略
如图所示,我们实现两个类:
1)Queue...
分类:
编程语言 时间:
2016-05-12 21:58:03
阅读次数:
285
模板与泛型编程
--模板特化
引言:
我们并不总是能够写出对所有可能被实例化的类型都最合适的模板。某些情况下,通用模板定义对于某个类型可能是完全错误的,通用模板定义也许不能编译或者做错误的事情;另外一些情况下,可以利用关于类型的一些特殊知识,编写比从模板实例化来的函数更有效率的函数。
compare函数和 Queue类都是这一问题的好例子:与C风格字符串一起...
分类:
编程语言 时间:
2016-05-12 21:57:56
阅读次数:
246
模板与泛型编程
--实例化
引言:
模板是一个蓝图,它本身不是类或函数。编译器使用模板产生指定的类或函数的特定版本。产生模板的特定类型实例的过程称为实例化。
模板在使用时将进行实例化,类模板在引用实际模板类型时实例化,函数模板在调用它或用它对函数指针进行初始化或赋值时实例化。
1、类的实例化
当编写Queueqi时,编译器自动创建...
分类:
编程语言 时间:
2016-05-12 21:57:37
阅读次数:
302
Chap1:
cerr: 标准错误
clog: 输出程序的一般性信息
cout > 也返回左侧对象
endl: 结束当前行,并将与设备关联的缓冲区中的内容刷到设备中
批量注释:ctrl+K, ctrl+C; 批量取消注释:ctrl+K, ctrl+U
for: 创建控制变量->检测->执行循环体->
++i->检测->执行循环体->
…
while(c...
分类:
编程语言 时间:
2016-05-12 21:28:46
阅读次数:
204
首先下载office 2016办公软件
文件名:cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso
SHA1:277926A41B472EE38CA0B36ED8F2696356DCC98F
语言: Chinese – Simplified
下载地址:
Office 2016 32/64位简体中文专业版下载:
ed2k://...
分类:
其他好文 时间:
2016-05-12 18:36:57
阅读次数:
216
近年来,人们对饮食健康的关注度是越来越高了,不过,在我们日常生活中,却有很多问题值得关注,以冰箱为例,很多人认为食物放在冰箱里面就安全了,不会腐败,也不用什么保鲜袋包装。殊不知,任何事物都有自身的气味,加之冰箱并不透气,久而久之,各种食物的气味就会互相交集影响形成异味,不仅让人大倒胃口,甚至可能影响食物的品质,如果长期不对冰箱进行清理,必然会影响我们的身体健康。
针对这一问题...
分类:
其他好文 时间:
2016-05-12 18:20:17
阅读次数:
147
5.6 try语句块和异常处理:
throw表达式,异常检测部分使用throw表达式来表示它遇到了无法处理的问题。我们说throw引发了异常try语句块,异常处理部分使用try语句块处理异常。try语句块以关键字try开始,并以一个或多个catch子句结束。try语句块中代码抛出的异常通常会被某个catch子句处理。因为catch子句“处理”异常,所以它们也被称作异常处理代码。一套异常类,用...
分类:
编程语言 时间:
2016-05-12 17:39:58
阅读次数:
230
用于大型程序的工具
--命名空间[续2]
五、类、命名空间和作用域
名字的可见性穿过任意嵌套作用域,直到引入名字的块的末尾。
对命名空间内部使用的名字的查找遵循常规C++查找规则:当查找名字的时候,通过外围作用域外查找。对命名空间内部使用的名字而言,外围作用域可能是一个或多个嵌套的命名空间,最终以全包围的全局命名空间结束。只考虑已经在使用点之前声明的名字,而...
分类:
编程语言 时间:
2016-05-12 16:55:17
阅读次数:
173
用于大型程序的工具
--命名空间[续3]
六、重载与命名空间
正如我们所见,每个命名空间维持自己的作用域,因此,作为两个不同命名空间的成员的函数不能互相重载。但是,给定命名空间可以包含一组重载函数成员。
1、候选函数与命名空间
命名空间对函数匹配有两个影响。一个影响是明显的:using声明或using 指示可以将函数加到候选集合。另一个...
分类:
编程语言 时间:
2016-05-12 16:53:48
阅读次数:
236