自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ojlovecd的专栏

请记住区健这个名字

  • 博客(84)
  • 资源 (37)
  • 收藏
  • 关注

翻译 创建自定义路由约束(C#)

这篇教程要演示如何创建自定义路由约束。自定义路由约束能够使路由只有达到某些自定义条件时才会匹配。在这篇教程里,我们创建一个 Localhost 路由约束。 它只匹配从本地计算机发出的请求。通过Internet发送的远程请求不被匹配。要实现自定义路由约束就要实现 IRouteConstraint 接口。这个接口极其简单,就描述了一个简单方法: bool Match( HttpContex

2010-02-07 12:59:00 2900

翻译 创建路由约束(C#)

使用路由约束来限制匹配特定路由的浏览器请求。可以使用正则表达式来指定约束。例如,假设你在代码1的Global.asax文件中已经定义了如下路由。代码1 – Global.asax.csroutes.MapRoute( "Product", "Product/{productId}", new {controller="Product", action="Details"} );  

2010-02-07 12:34:00 2688

翻译 ASP.NET MVC Routing概览(C#)

在这篇教程里,将向你介绍每个ASP.NET MVC程序都有的重要特性,叫做 ASP.NET Routing。 ASP.NET Routing 模块负责将传入的浏览器请求映射到特定的MVC控制器actions。教程最后,你会理解标准路由表是如何将请求映射到控制器action的。使用默认路由表新建 ASP.NET MVC 程序,它已经配置好使用 ASP.NET Routing了。 ASP.NE

2010-02-06 14:57:00 2966

翻译 理解模型,视图和控制器(C#)

这篇教程向你提供ASP.NET MVC 模型,视图和控制的高度概览。换句话说,解释一下ASP.NET MVC中的 ‘M’, ‘V’, 和 ‘C’。看完这篇教程以后,你应该就能理解ASP.NET MVC的不同部分是如何共同工作的。而且你也应该能够理解ASP.NET MVC程序的架构与ASP.NET Web窗体程序或ASP程序有如何的不同。示例 ASP.NET MVC 应用程序用以创建AS

2010-02-05 18:53:00 2936

翻译 理解ASP.NET MVC执行过程

向基于ASP.NET MVC的Web程序发送请求首先传递一个 UrlRoutingModule 对象,这是一个HTTP模块。这个模块解析请求并执行路由选择。 UrlRoutingModule 对象选择第一个匹配当前请求的路由对象。(路由对象是实现 RouteBase 的类,而且通常是 Route 类的一个实例。) 如果没有任何路由匹配, UrlRoutingModule 对象就啥都不做,让请求回到

2010-02-05 18:04:00 5404 1

翻译 ASP.NET MVC概览(C#)

Model-View-Controller (MVC) 架构模式将一个应用程序分为三个组成部分:模型,视图与控制器。ASP.NET MVC框架为创建基于MVC的Web应用程序提供了一种替代方案。ASP.NET MVC框架是一个轻量级的,可高度测试的展示框架(基于Web窗体的应用程序),它继承了现有的ASP.NET特性,比如母版页和成员资格权限。 MVC框架定义在 System.Web.Mvc 命名

2010-02-04 18:08:00 3235 1

翻译 使用ASP.NET MVC(C#)15分钟内创建一个电影数据库程序

    这篇教程的目的是让你体会一下创建一个 ASP.NET MVC 程序是一种什么样的感觉。在这篇教程里,我通过从头到尾地创建一整个ASP.NET MVC程序来进行说明。我会教你如何创建一个简单的数据库驱动程序,此程序会演示你如何以列表显示、新建和编辑数据库记录。    为了简化我们创建程序的过程,我们将利用Visual Studio 2008的“脚手架”特性。我们让Visual Studi

2010-02-02 18:23:00 10221 4

原创 C#基础谈(四)---- 解读"Hello World"

 这半年来由于工作等的诸多原因,所以一直没有再继续此基础教程,现在难得有时间了,继续~~原文再续,书接上一回。上次我们已经创建了第一个C#应用程序,并已跑起来了,现在我们来详细解读这段代码。首先先来看看最左边的行号数字,你可能会奇怪,为什么自己的vs代码编辑区域没有显示行号呢?因为vs默认是不会显示行号的,要显示的话,需要自己设置一下,具体步骤如下:点击vs顶头

2009-11-21 00:04:00 1889 5

原创 C#基础谈(三)---- 从"Hello World"说起

    接着上一讲,我们新建了一个名为"CSharpBasic"的控制台工程,首先看一下VS中的代码编辑区域,默认打开的是Program.cs这个文件,VS为我们自动添加的代码如下(由于我是用VS2008新建的,所以引入的命名空间与VS2005有所不同):using System;using System.Collections.Generic;using System.Linq;

2009-05-17 20:09:00 2688 1

原创 C#基础谈(二)---- 创建第一个C#程序

    既然知道了C#是一个语言,那么我们就把这个语言慢慢学好吧,很多参考书,包括MSDN的第一个例子都是"Hello World",那我们也遵照国际惯例吧。   首先创建你的第一个应用程序,C#是语言,不是工具,所以,要用C#开发程序,我们要使用支持C#语言的开发工具,现在市面上有很多的C#语言开发工具,之前我说了,我是微软的忠实用户,而且C#就是微软开发的,那我们自然是用微软的Vi

2009-04-30 15:44:00 1704

原创 C#基础谈(一)---- 认识C#

     一直想写一些关于C#的文章,尤其是在社区混得越久这种想法越强烈,今天终于下定决心“提笔”,全部的文字均基于本人对C#学习的心得体会,所有例子均直接取材于CSDN,希望转载时加以注明,目标:让大家都学好C#       好,言归正传,开始进入正题,什么是C#?先看一下MSDN的定义:Microsoft Visual C# 2005(读作 C sharp)是一种编程语言,它是为生

2009-04-29 20:50:00 1958

原创 C#实现启用或停用本地网络连接

今天在社区帮别人回答的一个问题,其实之前我也没弄过,今天自己在网上找了些别人的资料,自己改了一下,也是可以实现的。首先添加Microsoft Shell Control And Automation引用,如果你不知道怎么添加Microsoft Shell Control And Automation引用,请参考一下步骤: 在你的解决方案资源管理器的bin上右键->选择添加引用->选择->CO

2009-02-28 17:55:00 4073 7

原创 反射生成数组

两个月前写了一篇《对泛型进行反射》的文章,没什么人看,小伤心一下:(今天在论坛有人问怎样反射生成数组,突然又来了兴致,决定试试其实反射数组最难无非就是数组的初始化和数组的索引了,那么,如何初始化一个数组呢,数组是没有构造函数的,那么用InvokeMember(null, BindingFlags.DeclaredOnly |BindingFlags.Public | BindingFlags.No

2008-11-11 16:46:00 3360 6

原创 自制的一个输入验证控件

今天用正则表达式时突然来了兴致,想自己做一个验证用户输入的用户控件,经过几个小时的努力,终于完成了,内置了包括整数,正整数,负整数,数字,电话或手机,正数,负数,浮点数, 正浮点数,负浮点数,浮点数2,非负浮点数, 非正浮点数, 邮件,颜色,url,中文, ACSII字符,邮编,手机,IP地址,非空,图片,压缩文件, 日期, QQ号码,国内电话, 用户名,字母,大写字母,小写字母,身份证的32种常

2008-09-26 10:19:00 1901 5

原创 对泛型进行反射

今天在用反射的时候突然想到,之前从来没有对泛型对象进行反射,故决定尝试一下首先要获取某个泛型类的Type,键入如下代码:            Type t = Type.GetType("System.Collections.Generic.List");但是调试发现,t为null,看来类名写的不对,再试试,System.Collections.Generic.List,还是错,再试试Syste

2008-09-17 19:06:00 14891 4

原创 一个比较好用的SQL分页查询

现在公司里用的分页存储过程,执行效率还行,不知道原作者是谁set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER PROC [dbo].[P_viewPage_A]/*nzperfect [no_mIss] 高效通用分页存储过程(双向检索) 2007.5.7  QQ:34813284敬告:适用于单一主键或存在唯一值列的表或视图ps:Sql语句为8000字节

2008-09-16 16:11:00 6917 16

原创 常用的正则

  intege:"^-?[1-9]//d*$", //整数 intege1:"^[1-9]//d*$", //正整数 intege2:"^-[1-9]//d*$", //负整数 num:"^([+-]?)//d*//.?//d+$", //数字 phone:"d*//-?//d+$", //电话或手机(新添) num1:"^[1-9]//d*|0$",

2008-09-11 14:01:00 2450 7

原创 使用反射令2个事件在不知道方法名的情况下使用同一个处理方法

今天在社区碰到了一个比较有意思的问题,将button1的Click事件与button2的Click事件在不知道方法名的情况下如何使用同一个处理方法,我之前已经解答了一个类似的问题,是要用到委托列表类实现的,上代码:  private void Form1_Load(object sender, EventArgs e)         {             Button btn1 = new

2008-09-05 16:35:00 1239

原创 背包算法

 今天在社区帮人解答某个算法问题,其中有位朋友提出了背包问题的算法,特把他的方法贴在这里收藏一下:namespace Program{    public class Package    {        public double[] goods = new double[] { 1, 1.1, 2, 3, 4 };        ///         /// 用递归算出        //

2008-08-27 17:50:00 1585 1

原创 ASP.NET中获取CheckBoxList的当前选择项

CheckBoxList中有多个项,当选择/不选择某项时如果其AutoPostBack为True,则会触发SelectedIndexChanged,但是CheckBoxList及其Items属性都没有直接能获取当前选择的项的属性,想了一下,可以先将上一次的勾选状态存到ViewState中,在触发SelectedIndexChanged的时候进行比较,具体代码如下:%@ Page Language=

2008-08-27 17:45:00 6689

原创 Linq中查询二维数组

以下代码为在一个4*4的二维int数组中将大于5的元素查出:        static void Main(string[] args)        {            int[,] array = new int[4, 4];            for (int i = 0; i                 for (int j = 0; j                  

2008-08-19 13:48:00 5108

原创 ASP.NET 页生命周期

ASP.NET页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。了解页生命周期非常重要,因为这样做您就能在生命周期的合适阶段编写代码,以达到预期效果。此外,如果您要开发自定义控件,就必须熟悉页生命周期,以便正确进行控件初始化,使用视图状态数据填充控件属性以及运行任何控件行为代码。(控件

2008-07-22 15:56:00 7518

原创 IIS 7.0 的 ASP.NET 应用程序生命周期

IIS 7.0 集成管道是一种统一的请求处理管道,它同时支持本机代码和托管代码模块。实现 IHttpModule接口的托管代码模块可访问该请求管道中的所有事件。例如,托管代码模块可用于 ASP.NET 网页(.aspx 文件)和 HTML 页(.htm或 .html 文件)的 ASP.NET Forms 身份验证。即使 IIS 和 ASP.NET 将 HTML 页视为静态资源,情况也是如此

2008-07-22 15:42:00 1652

原创 IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期

在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤。此外,ASP.NET只是对浏览器发出的请求进行处理的 Web服务器结构的一部分。了解应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果。下表描述了 ASP.NET 应用程序生命周期的各个阶段。阶段说明用户从 Web 服务器请求应用程序资源。ASP.NET 应用

2008-07-22 15:13:00 1291

原创 Winform中同一窗口只能弹出一次的实现

1.首先新建一个Winform程序,拖一个Button到默认的Form1上,再新建一个Form2。2.将Form2的默认构造函数改为private,然后添加一个静态变量与实例化函数,代码如下: private static bool instanceFlag = false;private Form2(){ instanceFlag = true;

2008-07-09 11:30:00 2969 2

原创 在ASP.NET中实现ping

今天在社区帮别人回答问题,发现很多人不知道可以在ASP.NET中实现ping功能,其实这个很简单,只是要引入Microsoft.VisualBasic这个引用,可能大家用C#用多了,所以不太注意这个,其实这个命名空间里的类及函数相当有用,大家可以平时钻研一下。以下是在ASP.NET中实现ping功能的代码:[code=C#]       Microsoft.VisualBasic.Devices.

2008-06-11 20:36:00 2359

翻译 Are the type system represented by XmlSchema and the CLS isomorphic?

这个问题比较模棱两可,首先要解释什么是XmlSchema类型系统,什么是CLS类型系统,和同构(isomorphic)都是什么意思。XmlSchema是一个特定的XML文档必须满足的一套标准。这些标准能够描述不同的数据类型。例如:一个XSD文件(XmlSchema的物理实例化)可能会有一个entry like。这意味着一个必须满足XSD文件架构的XML文件可能有一个entry like 21.33

2008-05-08 00:09:00 2365 1

原创 使用ASMX的XML Web服务与使用SOAP的.NET Remoting的区别

Web 服务基础结构通过将 SOAP 消息映射到方法调用,为 Web 服务提供了简单的 API。通过提供一种非常简单的编程模型(基于将 SOAP 消息交换映射到方法调用),它实现了此机制。ASP.NET Web 服务的客户端不需要了解用于创建它们的平台、对象模型或编程语言。而服务也不需要了解向它们发送消息的客户端。唯一的要求是:双方都要认可正在创建和使用的 SOAP 消息的格式,该格式是由使用 W

2008-05-07 23:18:00 2460 2

原创 什么是反射?

Reflection,中文翻译为反射。        这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:        Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件

2008-05-07 23:07:00 1766 3

原创 什么是接口?它与类有什么区别?

1、接口类似于类,但接口的成员都没有执行方式,它只是方法、属性、事件和索引符的组合而已,并且也只能包含这四种成员;类除了这四种成员之外还可以别的成员(如字段)。2、不能实例化一个接口,接口只包括成员的签名;而类可以实例化(abstract类除外)。3、接口没有构造函数,类有构造函数。4、接口不能进行运算符的重载,类可以进行运算符重载。5、接口的成员没有任何修饰符,其成员总是公共的,而类的成员则可以

2008-05-07 23:05:00 11130 8

原创 什么是GAC?它解决了什么问题?

每一个CLR(Common Language Runtime)所在的计算机都有一个全局程序集缓存(Global Assembly Cache,GAC)。部署在GAC上的程序集必须有一个强名称。一种由.net framework sdk提供的名叫 "Global Assembly Cache tool" (Gacutil.exe)的开发工具,可以把程序集部署到GAC上。GAC存储专门指定的程序集以供

2008-05-07 22:29:00 7835 2

原创 单个TCP/IP端口上能够侦听多少个进程?

可能只有一个。如果你需要创建另一个TCP/IP监听,你必须建立另一个不同的端口

2008-05-07 22:11:00 5505 1

原创 PID是什么?在做系统的故障排除时如何使用它?

PID = Process Identifier, 是一个全局唯一的用来标识进程的整数。在多任务系统中,可用来诊断系统中发生错误的进程。

2008-05-07 22:07:00 3297 1

原创 什么是强类型,什么是弱类型?哪种更好些?为什么?

弱类型语言允许将一块内存看做多种类型。比如直接将整型变量与字符变量相加。C and C++ 是静态语言,也是弱类型语言;Perl and PHP 是动态语言,但也是弱类型语言。强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 和 Python 等都是强类型语言。使用哪种语言还是要按需而定。编写简单小应用,使用弱类型语言可节省很多代码量,有更高的开发效率。而对

2008-05-07 21:50:00 3320

原创 EXE和DLL之间的区别是什么?

现在的Windows中,exe 和 dll 都是基于PE格式,exe 是通常的可执行文件,包含数据和代码,而 dll 是动态链接文件,也有可能是纯资源文件,只包含数据,不含程序代码。ddl 的目的之一就是提供能被许多不同的应用程序所使用的函数和资源。dll 中的函数和资源为软件开发提供了复用。它们是在运行时由磁盘物理映像载入被调用者的内存空间或共享内存空间执行。

2008-05-07 21:37:00 3760

原创 Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?

Windows使用一个系统:虚拟寻址系统。该系统把程序可用的内存地址映射到硬件内存中的实际地址上,这些任务完全有Windows后台管理,其实际结果是32位处理器上的每个进程都可以使用4GB的内存------无论计算机上有多少硬盘空间(在64位处理器上这个数值会更大)。这个4GB内存实际上包含了程序的所有部分------包括可执行代码,代码加载的所有dll,以及程序运行时使用的所有变量的内容。这个4

2008-05-07 21:33:00 6252 2

原创 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同

Windows Service 是一种可随 Windows 操作系统启动而启动的,在后台运行的,通常不和用户产生交互的程序。它无法通过双击来运行,类似于 Unix 守护进程(daemon processes),当用户注销时它也不会停止。Windows 服务由三部分组成:1.一个服务可执行文件;2.一个服务控制程序(SCP);3.服务控制管理器(SCM),负责在 HKLM/SYSTEM/Curren

2008-05-07 21:04:00 4937 1

原创 进程与线程的区别

说法一:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同

2008-05-07 20:33:00 1936

原创 C#指针未解决问题

考虑以下代码: C# code <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->unsafe { byte b = 3;

2008-04-14 21:48:00 1068 1

转载 解密不同编码的的参数。

先看下面两个Url,他们传递的参数一样么??aaa.aspx?tag=.net%bc%bc%ca%f5aaa.aspx?tag=.net%e6%8a%80%e6%9c%af看起来好像是不一样,其实他们都是对".net技术"进行了UrlEncode,不过一个是GB2312的编码,一个是Utf-8的编码。如下代码就可以获得上面的编码后效果:string tmp1 = System.Web.

2007-10-18 20:25:00 890

淘宝mysql数据库高可用的设计实现

MySQL高可用的难题 • TMHA的整体设计 • TMHA如何实现异常切换 • TMHA如何保证数据一致性 • TMHA如何实现自动切换 • TMHA如何解决主备库延迟

2012-12-13

ASP.NET MVC4 in Action

ASP.NET.MVC.4.in.Action,英文版的

2012-11-30

C# 语 言 规 范

有了MSDN+C#语言规范,还用得着其它的参考书吗

2009-08-23

实现了弹出窗口后背景变灰并屏蔽

实现了弹出窗口后背景变灰并屏蔽实现了弹出窗口后背景变灰并屏蔽e

2008-10-29

microsoft c# windows程序设计

这是一本难得的c#windows编程书籍 pdg格式的

2008-09-17

ASP.NET程序员查询辞典

ASP.NET程序员查询辞典 【作者】 【文件格式】PDG 【资料语言】中文 【内容简介】ASP.NET程序员查询辞典

2008-09-17

在线网络考试系统(asp.net+sql2005)

功能介绍: 系统功能齐全,人工组卷,自动评卷,题库维护,新闻发布,论坛,留言,个人信息维护 用户分为四类:超级管理员,院系管理员,老师,考生 老师只能组和录自己所带课程的试卷和试题及维护 考生由系统搜索当前属于本专业本年级的考题进行答卷 老师可设置试卷的相关属性如考试日期,失效日期,,试卷分数,试卷名称,试卷题型等 系统要求: 采用浏览器最好为IE,firefox也支持,但效果不佳 用户采用系统:windows 服务器数据库:sqlserver2005 框架介绍: 采用div+css布局,大量 javascript+Ajax技术控制页面无刷新 采用两层架构,由于时间有限,实体类与业余类结合 系统安全性能良好,用户无法注入及进入其它用户的页面 页面清爽大方 Bug: 系统在线考试 多项选择题必须全部答完,其它题无此限制

2008-09-17

SQL 2005示例库.rar

包括NorthWind和AdventureWorks

2008-09-17

你必须知道的.Net chm格式

资源有点问题,大家不要下了,非常抱歉!!!!!

2008-09-17

C#加密类的使用PPT

C#加密类的使用,是一个微软讲加密相关类使用的PPT。对于想了解加密技术的朋友有一定的帮助。

2008-09-17

深入挖掘ASP.NET 2.0系列课程(11):ASP.NET 中的静态页生成技术.zip

深入挖掘ASP.NET 2.0系列课程(11):ASP.NET 中的静态页生成技术

2008-09-17

深入挖掘ASP.NET 2.0系列课程(4):数据库的缓存管理与网站页面的缓存管理

深入挖掘ASP.NET 2.0系列课程(4):数据库的缓存管理与网站页面的缓存管理.zip

2008-09-04

深入挖掘ASP.NET 2.0系列课程(1):随心所欲的使用GridView.

深入挖掘ASP.NET 2.0系列课程(1):随心所欲的使用GridView.zip

2008-09-04

SQL Server数据应用开发

SQL Server数据应用开发,视频教程

2008-09-02

visual c++ 6.0 高级编程

visual c++ 6.0 高级编程.rar

2007-09-26

Visual C#.NET中文版Web服务开发基础

Visual C#.NET中文版Web服务开发基础

2007-09-26

VC6.0 运行库参考手册.

VC6.0 运行库参考手册.

2007-09-26

vc6.0 mfc类库参考手册

vc6.0 mfc类库参考手册.rar

2007-09-22

Addison Wesley - The C++ Standard Library

Addison Wesley - The C++ Standard Library.chm

2007-09-22

MapObject开发2

MapObject2.doc

2007-09-22

MapObject开发

MapObject开发1

2007-09-22

Addison Wesley - Modern C++ Design

Addison Wesley - Modern C++ Design.chm

2007-09-22

Addison Wesley - More Exceptional C++

Addison Wesley - More Exceptional C++.chm

2007-09-22

Addison Wesley - Inside the C++ Object Model

Addison Wesley - Inside the C++ Object Model.chm

2007-09-22

Addison Wesley - Exceptional C++

Addison Wesley - Exceptional C++.chm

2007-09-22

Addison Wesley - Essential C++

Addison Wesley - Essential C++.chm

2007-09-22

Addison Wesley - Effective STL

Addison Wesley - Effective STL.pdf

2007-09-22

Addison Wesley - Effcient C++ Programming Techniques

Addison Wesley - Effcient C++ Programming Techniques .pdf

2007-09-22

Addison Wesley - Effective C++ & More Effective C++

Addison Wesley - Effective C++ & More Effective C++.chm

2007-09-22

Addison Wesley - Design Patterns Explained: A New Perspective on Object-Oriented Design

Part I: An Introduction to Object-Oriented Software Development <br> Chapter 1. The Object-Oriented Paradigm <br> Overview <br> Before The Object-Oriented Paradigm: Functional Decomposition <br> The Problem of Requirements <br> Dealing with Changes: Using Functional Decomposition <br> Dealing with Changing Requirements <br> The Object-Oriented Paradigm <br> Object-Oriented Programming in Action <br> Special Object Methods <br> Summary <br> <br> Chapter 2. The UML桾he Unified Modeling Language <br> Overview <br> What Is the UML? <br> Why Use the UML? <br> The Class Diagram <br> Interaction Diagrams <br> Summary <br> <br> <br> Part II: The Limitations of Traditional Object-Oriented Design <br> Chapter 3. A Problem That Cries Out for Flexible Code <br> Overview <br> Extracting Information from a CAD/CAM System <br> Understand the Vocabulary <br> Describe the Problem <br> The Essential Challenges and Approaches <br> Summary <br> <br> Chapter 4. A Standard Object-Oriented Solution <br> Overview <br> Solving with Special Cases <br> Summary <br> Supplement: C++ Code Examples <br> <br> <br> Part III: Design Patterns <br> Chapter 5. An Introduction to Design Patterns <br> Overview <br> Design Patterns Arose from Architecture and Anthropology <br> Moving from Architectural to Software Design Patterns <br> Why Study Design Patterns? <br> Other Advantages to Studying Design Patterns <br> Summary <br> <br> Chapter 6. The Facade Pattern <br> Overview <br> Introducing the Facade Pattern <br> Learning the Facade Pattern <br> Field Notes: The Facade Pattern <br> Relating the Facade Pattern to the CAD/CAM Problem <br> Summary <br> <br> Chapter 7. The Adapter Pattern <br> Overview <br> Introducing the Adapter Pattern <br> Learning the Adapter Pattern <br> Field Notes: The Adapter Pattern <br> Relating the Adapter Pattern to the CAD/CAM Problem <br> Summary <br> Supplement: C++ Code Example <br> <br> Chapter 8. Expanding Our Horizons <br> Overview <br> Objects: the Traditional View and the New View <br> Encapsulation: the Traditional View and the New View <br> Find What Is Varying and Encapsulate It <br> Commonality/Variability and Abstract Classes <br> Summary <br> <br> Chapter 9. The Bridge Pattern <br> Overview <br> Introducing the Bridge Pattern <br> Learning the Bridge Pattern: An Example <br> An Observation About Using Design Patterns <br> Learning the Bridge Pattern: Deriving It <br> The Bridge Pattern in Retrospect <br> Field Notes: Using the Bridge Pattern <br> Summary <br> Supplement: C++ Code Examples <br> <br> Chapter 10. The Abstract Factory Pattern <br> Overview <br> Introducing the Abstract Factory Pattern <br> Learning the Abstract Factory Pattern: An Example <br> Learning the Abstract Factory Pattern: Implementing It <br> Field Notes: The Abstract Factory Pattern <br> Relating the Abstract Factory Pattern to the CAD/CAM Problem <br> Summary <br> Supplement: C++ Code Examples <br> <br> <br> Part IV: Putting It All Together: Thinking in Patterns <br> Chapter 11. >How Do Experts Design? <br> Overview <br> Building by Adding Distinctions <br> Summary <br> <br> Chapter 12. Solving the CAD/CAM Problem with Patterns <br> Overview <br> Review of the CAD/CAM Problem <br> Thinking in Patterns <br> Thinking in Patterns: Step 1 <br> Thinking in Patterns: Step 2a <br> Thinking in Patterns: Step 2b <br> Thinking in Patterns: Step 2c <br> Thinking in Patterns: Step 2d (Facade) <br> Thinking in Patterns: Step 2d (Adapter) <br> Thinking in Patterns: Step 2d (Abstract Factory) <br> Thinking in Patterns: Step 3 <br> Comparison with the Previous Solution <br> Summary <br> <br> Chapter 13. The Principles and Strategies of Design Patterns <br> Overview <br> The Open-Closed Principle <br> The Principle of Designing from Context <br> The Principle of Encapsulating Variation <br> Summary <br> <br> <br> Part V: Handling Variations with Design Patterns <br> Chapter 14. The Strategy Pattern <br> Overview <br> An Approach to Handling New Requirements <br> Initial Requirements of the Case Study <br> Handling New Requirements <br> The Strategy Pattern <br> Field Notes: Using the Strategy Pattern <br> Summary <br> <br> Chapter 15. The Decorator Pattern <br> Overview <br> A Little More Detail <br> The Decorator Pattern <br> Applying the Decorator Pattern to the Case Study <br> Another Example: Input/Output <br> Field Notes: Using the Decorator Pattern <br> Summary <br> Supplement: C++ Code Examples <br> <br> Chapter 16. The Singleton Pattern and the Double-Checked Locking Pattern <br> Overview <br> Introducing the Singleton Pattern <br> Applying the Singleton Pattern to the Case Study <br> A Variant: The Double-Checked Locking Pattern <br> Field Notes: Using the Singleton and Double-Checked Locking Patterns <br> Summary <br> Supplement: C++ Code Examples <br> <br> Chapter 17. The Observer Pattern <br> Overview <br> Categories of Patterns <br> More Requirements for the Case Study <br> The Observer Pattern <br> Applying the Observer to the Case Study <br> Field Notes: Using the Observer Pattern <br> Summary <br> Supplement: C++ Code Example <br> <br> Chapter 18. The Template Method Pattern <br> Overview <br> More Requirements for the Case Study <br> The Template Method Pattern <br> Applying the Template Method to the Case Study <br> Field Notes: Using the Template Method Pattern <br> Summary <br> <br> Chapter 19. The Factory Method Pattern <br> Overview <br> More Requirements for the Case Study <br> The Factory Method Pattern <br> Field Notes: Using the Factory Method Pattern <br> Summary <br> <br> Chapter 20. The Analysis Matrix <br> Overview <br> In the Real World: Variations <br> Case Study in Variation: An International E-Tail System <br> Field Notes <br> Summary <br> <br> <br> Part VI: Endings and Beginnings <br> Chapter 21. Design Patterns Reviewed from the New Perspective of Object-Oriented Design <br> Overview <br> A Summary of Object-Oriented Principles <br> How Design Patterns Encapsulate Implementations <br> Commonality/Variability Analysis and Design Patterns <br> Decomposing a Problem Domain into Responsibilities <br> Relationships Within a Pattern <br> Patterns and Contextual Design <br> Field Notes <br> Summary <br> <br> Chapter 22. Bibliography <br> Design Patterns Explained: The Web Site Companion <br> Recommended Reading on Design Patterns and Object Orientation <br> Recommended Reading for Java Programmers <br> Recommended Reading for C++ Programmers <br> Recommended Reading for COBOL Programmers <br> Recommended Reading on eXtreme Programming <br> Recommended Reading on General Programming <br> Personal Favorites <br>

2007-09-22

Addison Wesley - C++ Templates

Chapter 1. About This Book <br> Section 1.1. What You Should Know Before Reading This Book <br> Section 1.2. Overall Structure of the Book <br> Section 1.3. How to Read This Book <br> Section 1.4. Some Remarks About Programming Style <br> Section 1.5. The Standard versus Reality <br> Section 1.6. Example Code and Additional Informations <br> Section 1.7. Feedback <br> <br> Part I: The Basics <br> Chapter 2. Function Templates <br> Section 2.1. A First Look at Function Templates <br> Section 2.2. Argument Deduction <br> Section 2.3. Template Parameters <br> Section 2.4. Overloading Function Templates <br> Section 2.5. Summary <br> <br> Chapter 3. Class Templates <br> Section 3.1. Implementation of Class Template Stack <br> Section 3.2. Use of Class Template Stack <br> Section 3.3. Specializations of Class Templates <br> Section 3.4. Partial Specialization <br> Section 3.5. Default Template Arguments <br> Section 3.6. Summary <br> <br> Chapter 4. Nontype Template Parameters <br> Section 4.1. Nontype Class Template Parameters <br> Section 4.2. Nontype Function Template Parameters <br> Section 4.3. Restrictions for Nontype Template Parameters <br> Section 4.4. Summary <br> <br> Chapter 5. Tricky Basics <br> Section 5.1. Keyword typename <br> Section 5.2. Using this-> <br> Section 5.3. Member Templates <br> Section 5.4. Template Template Parameters <br> Section 5.5. Zero Initialization <br> Section 5.6. Using String Literals as Arguments for Function Templates <br> Section 5.7. Summary <br> <br> Chapter 6. Using Templates in Practice <br> Section 6.1. The Inclusion Model <br> Section 6.2. Explicit Instantiation <br> Section 6.3. The Separation Model <br> Section 6.4. Templates and inline <br> Section 6.5. Precompiled Headers <br> Section 6.6. Debugging Templates <br> Section 6.7. Afternotes <br> Section 6.8. Summary <br> <br> Chapter 7. Basic Template Terminology <br> Section 7.1. "Class Template" or "Template Class"? <br> Section 7.2. Instantiation and Specialization <br> Section 7.3. Declarations versus Definitions <br> Section 7.4. The One-Definition Rule <br> Section 7.5. Template Arguments versus Template Parameters <br> <br> <br> Part II: Templates in Depth <br> Chapter 8. Fundamentals in Depth <br> Section 8.1. Parameterized Declarations <br> Section 8.2. Template Parameters <br> Section 8.3. Template Arguments <br> Section 8.4. Friends <br> Section 8.5. Afternotes <br> <br> Chapter 9. Names in Templates <br> Section 9.1. Name Taxonomy <br> Section 9.2. Looking Up Names <br> Section 9.3. Parsing Templates <br> Section 9.4. Derivation and Class Templates <br> Section 9.5. Afternotes <br> <br> Chapter 10. Instantiation <br> Section 10.1. On-Demand Instantiation <br> Section 10.2. Lazy Instantiation <br> Section 10.3. The C++ Instantiation Model <br> Section 10.4. Implementation Schemes <br> Section 10.5. Explicit Instantiation <br> Section 10.6. Afternotes <br> <br> Chapter 11. Template Argument Deduction <br> Section 11.1. The Deduction Process <br> Section 11.2. Deduced Contexts <br> Section 11.3. Special Deduction Situations <br> Section 11.4. Allowable Argument Conversions <br> Section 11.5. Class Template Parameters <br> Section 11.6. Default Call Arguments <br> Section 11.7. The Barton-Nackman Trick <br> Section 11.8. Afternotes <br> <br> Chapter 12. Specialization and Overloading <br> Section 12.1. When "Generic Code" Doesn't Quite Cut It <br> Section 12.2. Overloading Function Templates <br> Section 12.3. Explicit Specialization <br> Section 12.4. Partial Class Template Specialization <br> Section 12.5. Afternotes <br> <br> Chapter 13. Future Directions <br> Section 13.1. The Angle Bracket Hack <br> Section 13.2. Relaxed typename Rules <br> Section 13.3. Default Function Template Arguments <br> Section 13.4. String Literal and Floating-Point Template Arguments <br> Section 13.5. Relaxed Matching of Template Template Parameters <br> Section 13.6. Typedef Templates <br> Section 13.7. Partial Specialization of Function Templates <br> Section 13.8. The typeof Operator <br> Section 13.9. Named Template Arguments <br> Section 13.10. Static Properties <br> Section 13.11. Custom Instantiation Diagnostics <br> Section 13.12. Overloaded Class Templates <br> Section 13.13. List Parameters <br> Section 13.14. Layout Control <br> Section 13.15. Initializer Deduction <br> Section 13.16. Function Expressions <br> Section 13.17. Afternotes <br> <br> <br> Part III: Templates and Design <br> Chapter 14. The Polymorphic Power of Templates <br> Section 14.1. Dynamic Polymorphism <br> Section 14.2. Static Polymorphism <br> Section 14.3. Dynamic versus Static Polymorphism <br> 14.4 New Forms of Design Patterns <br> Section 14.5. Generic Programming <br> Section 14.6. Afternotes <br> <br> Chapter 15. Traits and Policy Classes <br> Section 15.1. An Example: Accumulating a Sequence <br> Section 15.2. Type Functions <br> Section 15.3. Policy Traits <br> Section 15.4. Afternotes <br> <br> Chapter 16. Templates and Inheritance <br> Section 16.1. Named Template Arguments <br> Section 16.2. The Empty Base Class Optimization (EBCO) <br> Section 16.3. The Curiously Recurring Template Pattern (CRTP) <br> Section 16.4. Parameterized Virtuality <br> Section 16.5. Afternotes <br> <br> Chapter 17. Metaprograms <br> Section 17.1. A First Example of a Metaprogram <br> Section 17.2. Enumeration Values versus Static Constants <br> Section 17.3. A Second Example: Computing the Square Root <br> Section 17.4. Using Induction Variables <br> Section 17.5. Computational Completeness <br> Section 17.6. Recursive Instantiation versus Recursive Template Arguments <br> Section 17.7. Using Metaprograms to Unroll Loops <br> Section 17.8. Afternotes <br> <br> Chapter 18. Expression Templates <br> Section 18.1. Temporaries and Split Loops <br> Section 18.2. Encoding Expressions in Template Arguments <br> Section 18.3. Performance and Limitations of Expression Templates <br> Section 18.4. Afternotes <br> <br> <br> Part IV: Advanced Applications <br> Chapter 19. Type Classification <br> Section 19.1. Determining Fundamental Types <br> Section 19.2. Determining Compound Types <br> Section 19.3. Identifying Function Types <br> Section 19.4. Enumeration Classification with Overload Resolution <br> Section 19.5. Determining Class Types <br> Section 19.6. Putting It All Together <br> Section 19.7. Afternotes <br> <br> Chapter 20. Smart Pointers <br> Section 20.1. Holders and Trules <br> Section 20.2. Reference Counting <br> Section 20.3. Afternotes <br> <br> Chapter 21. Tuples <br> Section 21.1. Duos <br> Section 21.2. Recursive Duos <br> Section 21.3. Tuple Construction <br> Section 21.4. Afternotes <br> <br> Chapter 22. Function Objects and Callbacks <br> Section 22.1. Direct, Indirect, and Inline Calls <br> Section 22.2. Pointers and References to Functions <br> Section 22.3. Pointer-to-Member Functions <br> Section 22.4. Class Type Functors <br> Section 22.5. Specifying Functors <br> Section 22.6. Introspection <br> Section 22.7. Function Object Composition <br> Section 22.8. Value Binders <br> Functor Operations: A Complete Implementation <br> Section 22.10. Afternotes <br> <br> <br> Appendix A. The One-Definition Rule <br> Section A.1. Translation Units <br> Section A.2. Declarations and Definitions <br> Section A.3. The One-Definition Rule in Detail <br> <br> Appendix B. Overload Resolution <br> Section B.1. When Does Overload Resolution Kick In? <br> Section B.2. Simplified Overload Resolution <br> Section B.3. Overloading Details <br>

2007-09-22

Addison Wesley - C++ Primer 3rd Edition

Part 1: C++, An Overview <br> Chapter 1. Getting Started <br> Section 1.1. Problem Solving <br> Section 1.2. The C++ Program <br> Section 1.3. Preprocessor Directives <br> Section 1.4. A Word About Comments <br> Section 1.5. A First Look at Input/Output <br> <br> Chapter 2. A Tour of C++ <br> Section 2.1. The Built-In Array Data Type <br> Section 2.2. Dynamic Memory Allocation and Pointers <br> Section 2.3. An Object-Based Design <br> Section 2.4. An Object-Oriented Design <br> Section 2.5. A Generic Design <br> Section 2.6. An Exception-Based Design <br> Section 2.7. An Array by Any Other Name <br> Section 2.8. The Standard Array Is a Vector <br> <br> <br> Part 2: The Basic Language <br> Chapter 3. The C++ Data Types <br> Section 3.1. Literal Constant <br> Section 3.2. Variables <br> Section 3.3. Pointer Types <br> Section 3.4. String Types <br> Section 3.5. const Qualifier <br> Section 3.6. Reference Types <br> Section 3.7. The bool Type <br> Section 3.8. Enumeration Types <br> Section 3.9. Array Types <br> Section 3.10. The vector Container Type <br> Section 3.11. complex Number Types <br> Section 3.12. Typedef Names <br> Section 3.13. volatile Qualifier <br> Section 3.14. The pair Type <br> Section 3.15. Class Types <br> <br> Chapter 4. Expressions <br> Section 4.1. What Is an Expression? <br> Section 4.2. Arithmetic Operators <br> Section 4.3. Equality, Relational, and Logical Operators <br> Section 4.4. Assignment Operators <br> Section 4.5. Increment and Decrement Operators <br> Section 4.6. Complex Number Operations <br> Section 4.7. The Conditional Operator <br> Section 4.8. The sizeof Operator <br> Section 4.9. The new and delete Expressions <br> Section 4.10. Comma Operator <br> Section 4.11. The Bitwise Operators <br> Section 4.12. bitset Operations <br> Section 4.13. Precedence <br> Section 4.14. Type Conversions <br> Section 4.15. A Stack Class Example <br> <br> Chapter 5. Statements <br> Section 5.1. Simple and Compound Statements <br> Section 5.2. Declaration Statement <br> Section 5.3. The if Statement <br> Section 5.4. The switch Statement <br> Section 5.5. The for Loop Statement <br> Section 5.6. The while Statement <br> Section 5.7. The do while Statement <br> Section 5.8. The break Statement <br> Section 5.9. The continue Statement <br> Section 5.10. The goto Statement <br> Section 5.11. A Linked List Example <br> <br> Chapter 6. Abstract Container Types <br> Section 6.1. Our Text Query System <br> Section 6.2. A vector or a list? <br> Section 6.3. How a vector Grows Itself <br> Section 6.4. Defining a Sequence Container <br> Section 6.5. Iterators <br> Section 6.6. Sequence Container Operations <br> Section 6.7. Storing Lines of Text <br> Section 6.8. Finding a Substring <br> Section 6.9. Handling Punctuation <br> Section 6.10. A String by Any Other Format <br> Section 6.11. Additional String Operations <br> Section 6.12. Building a Text Location Map <br> Section 6.13. Building a Word Exclusion Set <br> Section 6.14. The Complete Program <br> Section 6.15. Multimap/Multiset <br> Section 6.16. Stack <br> Section 6.17. Queue and Priority Queue <br> Section 6.18. Revisiting Our iStack Class <br> <br> <br> Part 3: Procedural-Based Programming <br> Chapter 7. Functions <br> Section 7.1. Overview <br> Section 7.2. Function Prototype <br> Section 7.3. Argument Passing <br> Section 7.4. Returning a Value <br> Section 7.5. Recursion <br> Section 7.6. Inline Functions <br> Section 7.7. Linkage Directives: extern "C" <br> Section 7.8. main(): Handling Command Line Options <br> Section 7.9. Pointers to Functions <br> <br> Chapter 8. Scope and Lifetime <br> Section 8.1. Scope <br> Section 8.2. Global Objects and Functions <br> Section 8.3. Local Objects <br> Section 8.4. Dynamically Allocated Objects <br> Section 8.5. Namespace Definitions <br> Section 8.6. Using Namespace Members <br> <br> Chapter 9. Overloaded Functions <br> Section 9.1. Overloaded Function Declarations <br> Section 9.2. The Three Steps of Overload Resolution <br> Section 9.3. Argument Type Conversions <br> Section 9.4. Details of Function Overload Resolution <br> <br> Chapter 10. Function Templates <br> Section 10.1. Function Template Definition <br> Section 10.2. Function Template Instantiation <br> Section 10.3. Template Argument Deduction <br> Section 10.4. Explicit Template Arguments <br> Section 10.5. Template Compilation Models <br> Section 10.6. Template Explicit Specialization <br> Section 10.7. Overloading Function Templates <br> Section 10.8. Overload Resolution with Instantiations <br> Section 10.9. Name Resolution in Template Definitions <br> Section 10.10. Namespaces and Function Templates <br> Section 10.11. Function Template Example <br> <br> Chapter 11. Exception Handling <br> Section 11.1. Throwing an Exception <br> Section 11.2. The Try Block <br> Section 11.3. Catching an Exception <br> Section 11.4. Exception Specifications <br> Section 11.5. Exceptions and Design Issues <br> <br> Chapter 12. The Generic Algorithms <br> Section 12.1. Overview <br> Section 12.2. Using the Generic Algorithms <br> Section 12.3. Function Objects <br> Section 12.4. Revisiting Iterators <br> Section 12.5. The Generic Algorithms <br> Section 12.6. When Not to Use the Generic Algorithms <br> <br> <br> Part 4: Object-Based Programming <br> Chapter 13. Classes <br> Section 13.1. Class Definition <br> Section 13.2. Class Objects <br> Section 13.3. Class Member Functions <br> Section 13.4. The Implicit this Pointer <br> Section 13.5. Static Class Members <br> Section 13.6. Pointer to Class Member <br> Section 13.7. Union: A Space-Saving Class <br> Section 13.8. Bit-field: A Space-Saving Member <br> Section 13.9. Class Scope <br> Section 13.10. Nested Classes <br> Section 13.11. Classes as Namespace Members <br> Section 13.12. Local Classes <br> <br> Chapter 14. Class Initialization, Assignment, and Destruction <br> Section 14.1. Class Initialization <br> Section 14.2. The Class Constructor <br> Section 14.3. The Class Destructor <br> Section 14.4. Class Object Arrays and Vectors <br> Section 14.5. The Member Initialization List <br> Section 14.6. Memberwise Initialization <br> Section 14.7. Memberwise Assignment <br> Section 14.8. Efficiency Considerations <br> <br> Chapter 15. Overloaded Operators and User-Defined Conversions <br> Section 15.1. Operator Overloading <br> Section 15.2. Friends <br> Section 15.3. Operator = <br> Section 15.4. Operator [ ] <br> Section 15.5. Operator () <br> Section 15.6. Operator -> <br> Section 15.7. Operators ++ and -- <br> Section 15.8. Operators new and delete <br> Section 15.9. User-Defined Conversions <br> Section 15.10. Selecting a Conversion <br> Section 15.11. Overload Resolution and Member Functions <br> Section 15.12. Overload Resolution and Operators <br> <br> Chapter 16. Class Templates <br> Section 16.1. Class Template Definition <br> Section 16.2. Class Template Instantiation <br> Section 16.3. Member Functions of Class Templates <br> Section 16.4. Friend Declarations in Class Templates <br> Section 16.5. Static Data Members of Class Templates <br> Section 16.6. Nested Types of Class Templates <br> Section 16.7. Member Templates <br> Section 16.8. Class Templates and Compilation Model <br> Section 16.9. Class Template Specializations <br> Section 16.10. Class Template Partial Specializations <br> Section 16.11. Name Resolution in Class Templates <br> Section 16.12. Namespaces and Class Templates <br> Section 16.13. A Template Array Class <br> <br> <br> Part 5: Object-Oriented Programming <br> Chapter 17. Class Inheritance and Subtyping <br> Section 17.1. Defining a Class Hierarchy <br> Section 17.2. Identifying the Members of the Hierarchy <br> Section 17.3. Base Class Member Access <br> Section 17.4. Base and Derived Class Construction <br> Section 17.5. Base and Derived Class Virtual Functions <br> Section 17.6. Memberwise Initialization and Assignment <br> Section 17.7. A UserQuery Manager Class <br> Section 17.8. Putting It Together <br> <br> Chapter 18. Multiple and Virtual Inheritance <br> Section 18.1. Setting the Stage <br> Section 18.2. Multiple Inheritance <br> Section 18.3. Public, Private, and Protected Inheritance <br> Section 18.4. Class Scope under Inheritance <br> Section 18.5. Virtual Inheritance <br> Section 18.6. A Multiple, Virtual Inheritance Example <br> <br> Chapter 19. Uses of Inheritance in C++ <br> Section 19.1. Run-Time Type Identification <br> Section 19.2. Exceptions and Inheritance <br> Section 19.3. Overload Resolution and Inheritance <br> <br> Chapter 20. The iostream Library <br> Section 20.1. The Output Operator<< <br> Section 20.2. Input <br> Section 20.3. Additional Input/Output Operators <br> Section 20.4. Overloading the Output Operator << <br> Section 20.5. Overloading the Input Operator >> <br> Section 20.6. File Input and Output <br> Section 20.7. Condition States <br> Section 20.8. String Streams <br> Section 20.9. Format State <br> Section 20.10. A Strongly Typed Library <br> <br> The Generic Algorithms Alphabetically <br> accumulate() <br> adjacent_difference() <br> adjacent_find() <br> binary_search() <br> copy() <br> copy_backward() <br> count() <br> count_if() <br> equal() <br> equal_range() <br> fill() <br> fill_n() <br> find() <br> find_if() <br> find_end() <br> find_first_of() <br> for_each() <br> generate() <br> generate_n() <br> includes() <br> inner_product() <br> inplace_merge() <br> iter_swap () <br> lexicographical_compare() <br> lower_bound() <br> max() <br> max_element() <br> min() <br> min_element() <br> merge() <br> mismatch() <br> next_permutation() <br> nth_element() <br> partial_sort() <br> partial_sort_copy() <br> partial_sum() <br> partition() <br> prev_permutation() <br> random_shuffle() <br> remove() <br> remove_copy() <br> remove_if() <br> remove_copy_if() <br> replace() <br> replace_copy() <br> replace_if() <br> replace_copy_if() <br> reverse() <br> reverse_copy() <br> rotate() <br> rotate_copy() <br> search() <br> search_n() <br> set_difference() <br> set_intersection() <br> set_symmetric_difference() <br> set_union() <br> sort() <br> stable_partition() <br> stable_sort() <br> swap() <br> swap_range() <br> transform() <br> unique() <br> unique_copy() <br> upper_bound() <br> <br>

2007-09-22

Addison Wesley - C++ Network Programming Vol 2

Chapter 1. Object-Oriented Frameworks for Network Programming <br> Section 1.1. An Overview of Object-Oriented Frameworks <br> Section 1.2. Comparing Software Development and Reuse Techniques <br> Section 1.3. Applying Frameworks to Network Programming <br> Section 1.4. A Tour through the ACE Frameworks <br> Section 1.5. Example: A Networked Logging Service <br> Section 1.6. Summary <br> <br> Chapter 2. Service and Configuration Design Dimensions <br> Section 2.1. Service and Server Design Dimensions <br> Section 2.2. Configuration Design Dimensions <br> Section 2.3. Summary <br> <br> Chapter 3. The ACE Reactor Framework <br> Section 3.1. Overview <br> Section 3.2. The ACE_Time_Value Class <br> Section 3.3. The ACE_Event_Handler Class <br> Section 3.4. The ACE Timer Queue Classes <br> Section 3.5. The ACE_Reactor Class <br> Section 3.6. Summary <br> <br> Chapter 4. ACE Reactor Implementations <br> Section 4.1. Overview <br> Section 4.2. The ACE_Select_Reactor Class <br> Section 4.3. The ACE_TP_Reactor Class <br> Section 4.4. The ACE_WFMO_Reactor Class <br> Section 4.5. Summary <br> <br> Chapter 5. The ACE Service Configurator Framework <br> Section 5.1. Overview <br> Section 5.2. The ACE_Service_Object Class <br> Section 5.3. The ACE_Service_Repository Classes <br> Section 5.4. The ACE_Service_Config Class <br> Section 5.5. Summary <br> <br> Chapter 6. The ACE Task Framework <br> Section 6.1. Overview <br> Section 6.2. The ACE_Message_Queue Class <br> Section 6.3. The ACE_Task_Class <br> Section 6.4. Summary <br> <br> Chapter 7. The ACE Acceptor-Connector Framework <br> Section 7.1. Overview <br> Section 7.2. The ACE_Svc_Handler Class <br> Section 7.3. The ACE_Acceptor Class <br> Section 7.4. The ACE_Connector Class <br> Section 7.5. Summary <br> <br> Chapter 8. The ACE Proactor Framework <br> Section 8.1. Overview <br> Section 8.2. The Asynchronous I/O Factory Classes <br> Section 8.3. The ACE_Handler Class <br> Section 8.4. The Proactive Acceptor-Connector Classes <br> Section 8.5. The ACE_Proactor Class <br> Section 8.6. Summary <br> <br> Chapter 9. The ACE Streams Framework <br> Section 9.1. Overview <br> Section 9.2. The ACE_Module Class <br> Section 9.3. The ACE_Stream Class <br> Section 9.4. Summary <br>

2007-09-22

Addison Wesley - C++ Network Programming Vol 1

Chapter 0. Design Challenges, Middleware Solutions, and ACE <br> Section 0.1. Challenges of Networked Applications <br> Section 0.2. Networked Application Design Dimensions <br> Section 0.3. Object-Oriented Middleware Solutions <br> Section 0.4. An Overview of the ACE Toolkit <br> Section 0.5. Example: A Networked Logging Service <br> Section 0.6. Summary <br> <br> Part I: Object-Oriented Network Programming <br> Chapter 1. Communication Design Dimensions <br> Section 1.1. Connectionless versus Connection-Oriented Protocols <br> Section 1.2. Synchronous versus Asynchronous Message Exchange <br> Section 1.3. Message Passing versus Shared Memory <br> Section 1.4. Summary <br> <br> Chapter 2. An Overview of the Socket API <br> Section 2.1. An Overview of Operating System IPC Mechanisms <br> Section 2.2. The Socket API <br> Section 2.3. Limitations of the Socket API <br> Section 2.4. Summary <br> <br> Chapter 3. The ACE Socket Wrapper Facades <br> Section 3.1. Overview <br> Section 3.2. The ACE_Addr and ACE_INET_Addr Classes <br> Section 3.3. The ACE_IPC_SAP Class <br> Section 3.4. The ACE_SOCK Class <br> Section 3.5. The ACE_SOCK_Connector Class <br> Section 3.6. The ACE_SOCK_IO and ACE_SOCK_Stream Classes <br> Section 3.7. The ACE_SOCK_Acceptor Class <br> Section 3.8. Summary <br> <br> Chapter 4. Implementing the Networked Logging Service <br> Section 4.1. Overview <br> Section 4.2. The ACE_Message_Block Class <br> Section 4.3. The ACE_InputCDR and ACE_OutputCDR Classes <br> Section 4.4. The Initial Logging Server <br> Section 4.5. The Client Application <br> Section 4.6. Summary <br> <br> <br> Part II: Concurrent Object-Oriented Network Programming <br> Chapter 5. Concurrency Design Dimensions <br> Section 5.1. Iterative, Concurrent, and Reactive Servers <br> Section 5.2. Processes versus Threads <br> Section 5.3. Process/Thread Spawning Strategies <br> Section 5.4. User, Kernel, and Hybrid Threading Models <br> Section 5.5. Time-Shared and Real-Time Scheduling Classes <br> Section 5.6. Task- versus Message-Based Architectures <br> Section 5.7. Summary <br> <br> Chapter 6. An Overview of Operating System Concurrency Mechanisms <br> Section 6.1. Synchronous Event Demultiplexing <br> Section 6.2. Multiprocessing Mechanisms <br> Section 6.3. Multithreading Mechanisms <br> Section 6.4. Synchronization Mechanisms <br> Section 6.5. Limitations with OS Concurrency Mechanisms <br> Section 6.6. Summary <br> <br> Chapter 7. The ACE Synchronous Event Demultiplexing Wrapper Facades <br> Section 7.1. Overview <br> Section 7.2. The ACE_Handle_Set Class <br> Section 7.3. The ACE_Handle_Set_Iterator Class <br> Section 7.4. The ACE::select() Methods <br> Section 7.5. Summary <br> <br> Chapter 8. The ACE Process Wrapper Facades <br> Section 8.1. Overview <br> Section 8.2. The ACE_Process Class <br> Section 8.3. The ACE_Process_Options Class <br> Section 8.4. The ACE_Process_Manager Class <br> Section 8.5. Summary <br> <br> Chapter 9. The ACE Threading Wrapper Facades <br> Section 9.1. Overview <br> Section 9.2. The ACE_Thread_Manager Class <br> Section 9.3. The ACE_Sched_Params Class <br> Section 9.4. The ACE_TSS Class <br> Section 9.5. Summary <br> <br> Chapter 10. The ACE Synchronization Wrapper Facades <br> Section 10.1. Overview <br> Section 10.2. The ACE Guard Classes <br> Section 10.3. The ACE Mutex Classes <br> Section 10.4. The ACE Readers/Writer Lock Classes <br> Section 10.5. The ACE Semaphore Classes <br> Section 10.6. The ACE Condition Variable Classes <br> Section 10.7. Summary <br> <br> Appendix A. Design Principles for ACE C++ Wrapper Facades <br> Section A.1. Overview <br> Section A.2. Use Wrapper Facades to Enhance Type Safety <br> Section A.3. Simplify for the Common Case <br> Section A.4. Use Hierarchies to Enhance Design Clarity and Extensibility <br> Section A.5. Hide Platform Differences Whenever Possible <br> Section A.6. Optimize for Efficiency <br> Section A.7. Summary <br> <br> Appendix B. The Past, Present, and Future of ACE <br> Section B.1. The Evolution of ACE <br> Section B.2. The Road Ahead <br> Section B.3. Concluding Remarks <br> <br>

2007-09-22

Addison Wesley - C++ Gotchas

Chapter 1. Basics <br> Gotcha #1: Excessive Commenting <br> Gotcha #2: Magic Numbers <br> Gotcha #3: Global Variables <br> Gotcha #4: Failure to Distinguish Overloading from Default Initialization <br> Gotcha #5: Misunderstanding References <br> Gotcha #6: Misunderstanding Const <br> Gotcha #7: Ignorance of Base Language Subtleties <br> Gotcha #8: Failure to Distinguish Access and Visibility <br> Gotcha #9: Using Bad Language <br> Gotcha #10: Ignorance of Idiom <br> Gotcha #11: Unnecessary Cleverness <br> Gotcha #12: Adolescent Behavior <br> <br> Chapter 2. Syntax <br> Gotcha #13: Array/Initializer Confusion <br> Gotcha #14: Evaluation Order Indecision <br> Gotcha #15: Precedence Problems <br> Gotcha #16: for Statement Debacle <br> Gotcha #17: Maximal Munch Problems <br> Gotcha #18: Creative Declaration-Specifier Ordering <br> Gotcha #19: Function/Object Ambiguity <br> Gotcha #20: Migrating Type-Qualifiers <br> Gotcha #21: Self-Initialization <br> Gotcha #22: Static and Extern Types <br> Gotcha #23: Operator Function Lookup Anomaly <br> Gotcha #24: Operator -> Subtleties <br> <br> Chapter 3. The Preprocessor <br> Gotcha #25: #define Literals <br> Gotcha #26: #define Pseudofunctions <br> Gotcha #27: Overuse of #if <br> Gotcha #28: Side Effects in Assertions <br> <br> Chapter 4. Conversions <br> Gotcha #29: Converting through void * <br> Gotcha #30: Slicing <br> Gotcha #31: Misunderstanding Pointer-to-Const Conversion <br> Gotcha #32: Misunderstanding Pointer-to-Pointer-to-Const Conversion <br> Gotcha #33: Misunderstanding Pointer-to-Pointer-to-Base Conversion <br> Gotcha #34: Pointer-to-Multidimensional-Array Problems <br> Gotcha #35: Unchecked Downcasting <br> Gotcha #36: Misusing Conversion Operators <br> Gotcha #37: Unintended Constructor Conversion <br> Gotcha #38: Casting under Multiple Inheritance <br> Gotcha #39: Casting Incomplete Types <br> Gotcha #40: Old-Style Casts <br> Gotcha #41: Static Casts <br> Gotcha #42: Temporary Initialization of Formal Arguments <br> Gotcha #43: Temporary Lifetime <br> Gotcha #44: References and Temporaries <br> Gotcha #45: Ambiguity Failure of dynamic_cast <br> Gotcha #46: Misunderstanding Contravariance <br> <br> Chapter 5. Initialization <br> Gotcha #47: Assignment/Initialization Confusion <br> Gotcha #48: Improperly Scoped Variables <br> Gotcha #49: Failure to Appreciate C++'s Fixation on Copy Operations <br> Gotcha #50: Bitwise Copy of Class Objects <br> Gotcha #51: Confusing Initialization and Assignment in Constructors <br> Gotcha #52: Inconsistent Ordering of the Member Initialization List <br> Gotcha #53: Virtual Base Default Initialization <br> Gotcha #54: Copy Constructor Base Initialization <br> Gotcha #55: Runtime Static Initialization Order <br> Gotcha #56: Direct versus Copy Initialization <br> Gotcha #57: Direct Argument Initialization <br> Gotcha #58: Ignorance of the Return Value Optimizations <br> Gotcha #59: Initializing a Static Member in a Constructor <br> <br> Chapter 6. Memory and Resource Management <br> Gotcha #60: Failure to Distinguish Scalar and Array Allocation <br> Gotcha #61: Checking for Allocation Failure <br> Gotcha #62: Replacing Global New and Delete <br> Gotcha #63: Confusing Scope and Activation of Member new and delete <br> Gotcha #64: Throwing String Literals <br> Gotcha #65: Improper Exception Mechanics <br> Gotcha #66: Abusing Local Addresses <br> Gotcha #67: Failure to Employ Resource Acquisition Is Initialization <br> Gotcha #68: Improper Use of auto_ptr <br> <br> Chapter 7. Polymorphism <br> Gotcha #69: Type Codes <br> Gotcha #70: Nonvirtual Base Class Destructor <br> Gotcha #71: Hiding Nonvirtual Functions <br> Gotcha #72: Making Template Methods Too Flexible <br> Gotcha #73: Overloading Virtual Functions <br> Gotcha #74: Virtual Functions with Default Argument Initializers <br> Gotcha #75: Calling Virtual Functions in Constructors and Destructors <br> Gotcha #76: Virtual Assignment <br> Gotcha #77: Failure to Distinguish among Overloading, Overriding, and Hiding <br> Gotcha #78: Failure to Grok Virtual Functions and Overriding <br> Gotcha #79: Dominance Issues <br> <br> Chapter 8. Class Design <br> Gotcha #80: Get/Set Interfaces <br> Gotcha #81: Const and Reference Data Members <br> Gotcha #82: Not Understanding the Meaning of Const Member Functions <br> Gotcha #83: Failure to Distinguish Aggregation and Acquaintance <br> Gotcha #84: Improper Operator Overloading <br> Gotcha #85: Precedence and Overloading <br> Gotcha #86: Friend versus Member Operators <br> Gotcha #87: Problems with Increment and Decrement <br> Gotcha #88: Misunderstanding Templated Copy Operations <br> <br> Chapter 9. Hierarchy Design <br> Gotcha #89: Arrays of Class Objects <br> Gotcha #90: Improper Container Substitutability <br> Gotcha #91: Failure to Understand Protected Access <br> Gotcha #92: Public Inheritance for Code Reuse <br> Gotcha #93: Concrete Public Base Classes <br> Gotcha #94: Failure to Employ Degenerate Hierarchies <br> Gotcha #95: Overuse of Inheritance <br> Gotcha #96: Type-Based Control Structures <br> Gotcha #97: Cosmic Hierarchies <br> Gotcha #98: Asking Personal Questions of an Object <br> Gotcha #99: Capability Queries <br>

2007-09-22

Addison Wesley - Applied C++

Chapter 1. Introduction <br> Section 1.1. Imaging Basics <br> Section 1.2. Summary <br> <br> Chapter 2. A Test Application <br> Section 2.1. Image Class Design <br> Section 2.2. Thumbnail Class <br> Section 2.3. Implementation <br> Section 2.4. Summary <br> <br> Chapter 3. Design Techniques <br> Section 3.1. Memory Allocation <br> Section 3.2. Prototyping <br> Section 3.3. Summary <br> <br> Chapter 4. Design Considerations <br> Section 4.1. Coding Guidelines <br> Section 4.2. Reusable Code <br> Section 4.3. Designing in Debugging Support <br> Section 4.4. Summary <br> <br> Chapter 5. System Considerations <br> Section 5.1. Multithreaded and Multiprocess Designs <br> Section 5.2. Exception Handling <br> Section 5.3. Compile-Time Versus Run-Time Issues <br> Section 5.4. Coding for Internationalization <br> Section 5.5. Summary <br> <br> Chapter 6. Implementation Considerations <br> Section 6.1. Finalizing the Image Components <br> Section 6.2. Finalizing the Image Class <br> Section 6.3. Adding Global Image Functions <br> Section 6.4. Finalizing Interfaces to Third-Party Software <br> Section 6.5. Summary <br> <br> Chapter 7. Testing and Performance <br> Section 7.1. Unit Tests <br> Section 7.2. Performance Tuning <br> Section 7.3. Summary <br> <br> Chapter 8. Advanced Topics <br> Section 8.1. Memory Issues <br> Section 8.2. Language Construct Issues <br> Section 8.3. Extending the Framework <br> Section 8.4. Summary <br> <br> Appendix A. Useful Online Resources <br> Section A.1. Software <br> Section A.2. Standards <br> <br> Appendix B. CD-ROM Information <br> Section B.1. Contents <br> Section B.2. Framework <br> Section B.3. Prototypes <br> Section B.4. Utilities <br> Section B.5. Delegates <br>

2007-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除