11 2008 档案
摘要:1 第十二章 特化与重载 1.1 重载函数模板 和一般的函数重载类似,函数模板也可以进行重载,比如下面的两个f,这是两个同名函数,1和2并没有关系,2不是1的局部特化。2是1的一个重载。 //1 template void g(T1 a, T2 b){ std::cout void g(T a, int b){ std::cout void g(T1 a,...
阅读全文
摘要:1 第十一章 模板实参演绎 1.1 演绎的过程 每个实参-参数对的分析都是独立的;因此,如果最后得出的结果是矛盾的,那么演绎的过程将失败。 我们来看个例子: template typename T::ElementT at(T const& a, int i) { return a[i]; } void g1(int* p) { int x = a...
阅读全文
摘要:1 第八章 深入模板基础 1.1 参数化声明 1.1.1 联合模板 联合模板也是允许的,比如: template union AllocChunk{ T object; unsigned char bytes[sizeof(T)]; }; 1.1.2 函数模板的缺省调用实参 template void fill(Array*, T const& ...
阅读全文
摘要:1 第七章 模板术语 1.1 类模板还是模板类 在c++中,类和联合都被称为类类型。 l 类模板(class template):该类是个模板,它代表的是:整个家族的参数化描述; l 模板类(template class): n 作为类模板的同义词; n 从模板产生的类; n 具有一个templa...
阅读全文
摘要:1 第六章 模板实战 从某种意义上讲,模板是位于宏和普通声明之间的一种构造。 1.1 包含模型 我们可以用几种方法来组织模板源代码,其中最常用的就是包含模型。 所谓包含模型,其实可以有三种组织方式: l 直接在头文件中采用内联函数的编写方式来写模板类和模板函数;(通过我在VS2005上做实验,目前只支持这种模型) l 申明和定义分开,但是都...
阅读全文
摘要:1 第五章 技巧性基础知识 1.1 关键字typename 在标准化c++的过程中,引入typename是为了说明:模板内部的标识符可以是一个类型。下面举个例子: template class MyClass{ typename T::SubType * ptr; .. }; 1.1.1 .templates构造 这个比较生僻一些,给个例子吧 tem...
阅读全文
摘要:1 第四章 非类型模板参数 对于函数模板和类模板,模板参数并不局限于类型,普通值也可以作为模板参数。 1.1 非类型的类模板参数 例如: Template Class Stack{ Private: T elems[MAXSIZE]; … }; Int main() { Stack int20Stack; Stack int40S...
阅读全文
摘要:1 类模板 1.1 类模板的声明 类模板的定义和实现都被放在头文件中,这点和函数模板类似。 Template Class Stack{ Private: Std::vector elems; Public: Stack(); Void push(T const&); Void pop(); … }; 这个...
阅读全文
摘要:1 函数模板 1.1 初探函数模板 函数模板的定义 templates …. l 模板函数会进行实参演绎,所以在使用函数模板的时候,一般不需要制定参数的类型。 l 就编译原理来说,并不是把模板编译成一个可以处理任何类型的单一实体,而是对于实例化模板参数的每种类型,都从模板产生出一个不同的实体。 l 如果试图基于一个不支持模板内部所使...
阅读全文
摘要:关于Decorator模式 Decorator模式本身较好理解,从他的别名可见一斑:Wrapper。 Decorator用于动态地给对象添加一些额外的职责,注意:此处是给对象,而不是给类,这正式该模式灵活的地方。你可以给一个对象嵌套一个或人一个多个Decorator。 下面我们主要要看一下Decorator和Strategy的区别。 Decorator模式仅从外部改变组建,因此组件无需对它...
阅读全文
摘要:l 适用性 n 类的抽象以及他的实现都应该可以通过生成子类的方法加以扩充。 n 如果任何一种扩展都会导致类以几何级数来增长,这就说明你需要将一个对象分解为两个部分,这种类层次称为“嵌套的普化 nested generalizations”; l 一般来讲,Implementor只提供一些基本操作,而Abastraction则定义...
阅读全文
摘要:声明:本文2004年5月首发于《CSDN开发高手》,版权归该杂志与《程序员》杂志社 所有。 ------------------------------------------------------------------------ -------- 1,前言 无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的 学不会”的无奈。Stan Lippman先...
阅读全文
摘要:原文地址:http://database.51cto.com/art/200512/12923.htm 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的...
阅读全文
摘要:最近会专门抽出时间来学习 windows powershell 首先当然是从powershell本身的userguide开始,刚刚粗略的看了一下powershell的目录 powershell是相当强大的,在powershell中,我们可以对注册表进行处理、可以对本地进程进行管理、可以对本地和网络的打印机进行管理、可以执行一些网络相关的任务(如列出计算机的ip、执行ping操作、执行DHCP配置、...
阅读全文
摘要:Adapter本身是很好理解的:当我们希望将一个累的接口转换为客户希望的另外一个接口时,Adapter就派上用场了。 在gof的《设计模式》一书中,在Adapter一节,它提到了:可插入的adapter,关于什么是可插入的adapter,我一直没有弄清其概念。 另外,在实现一节中,还介绍了使用代理对象的方式来实现可插入的adapter,关于这种方式,我好像在《敏捷软件开发:原则、模式与实践》一书中...
阅读全文
摘要:自从前段时间为了制作安装包的压缩包而写了一个批处理脚本之后,心里就有学习一种脚本语言的冲动,上周去参加微软的tech.ed大会,听说了power shell这个名词,google了一把,在微软的官方网站上得到了这么一句简介: Brief Description Microsoft Windows® PowerShell is a new command-line shell and scripti...
阅读全文
摘要:这段时间一直忙于看sql server2005相关书籍,c++虽然每天都在用,很多知识没有复习,都渐渐荒废了。。。 觉得作为一个c++程序员,基础性的东西一定要经常复习,比如语法性的东西、比如方向性的东西,如设计模式、比如方法性的东西,如重构,比如一些对我来说全新的东西,如模板 1、关于factory method 这两天抽空复习了gof版《设计模式》中的创建型模式,其实一直以来都对几个创建型模...
阅读全文