自定义博客皮肤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)
  • 收藏
  • 关注

翻译 Swift语言指南(二)基础操作符

操作符是用于检测、更改或者组合值的特殊符号或短语。例如,加法操作符 (+) 将两个数字加到一起 (如 let i = 1 + 2)。更复杂的例子包括逻辑与操作符 && (如 if enteredDoorCode && passedRetinaScan) 和自增操作符 ++i,就是把 i 的值加1的快捷方式。Swift 支持大多数标准的C 操作符并且改善了几项功能以消除常见的编码错误。赋值操作符 (=

2015-05-14 17:29:57 5892 1

翻译 Swift语言指南(一)基础知识

Swift 是用于开发iOS和OS X的一门新编程语言。尽管如此,Swift的大部分地方看着其实跟C和Objective-C都是挺像的。Swift 提供了C和Objective-C基础类型的自己一套版本,包括用于整型的Int,用于浮点值的Double和Float,用于布尔值的Boolean,和用于文本数据的String。Swift还提供了Array和Dictionary这两种集合类型的增强版本

2015-05-12 11:43:03 6408

翻译 Swift之旅(七)范型

Swift之旅第七篇,介绍范型

2015-05-09 16:42:57 5995

翻译 Swift之旅(六)协议与扩展

Swift之旅第六篇,讲述协议与扩展的内容。协议就相当于C#和其它编程语言里的接口。

2015-05-09 14:31:14 5536

翻译 Swift之旅(五)枚举与结构体

Swift之旅第五篇,讲述枚举与结构体

2015-05-09 14:01:54 5596

翻译 Swift之旅(四)对象和类

Swift之旅第四篇,讲述对象与类的概述

2015-05-09 11:36:11 5531

翻译 Swift之旅(三)函数与闭包

Swift教程第三篇,介绍函数与闭包

2015-05-07 18:23:17 6751

翻译 Swift之旅(二)控制流

Swift之旅第二篇,介绍代码流程控制,包括条件和循环

2015-05-07 17:39:16 5501

翻译 Swift之旅(一)简单值

swift语言之旅第一篇,介绍值的定义。本教程适合有编程基础人员。

2015-05-07 16:43:27 6177

原创 使用WIF实现单点登录Part III —— 正式实战

不好意思,最近一段时间真是太忙了,导致一直没有更新,有好几位朋友都表示让我赶紧接着往下写,偶心里真是挺感动~~好了,经过前两篇文章,估计大家对WIF已经有比较充分的认识了,估计大家在经过了枯燥的理论以后,肯定是摩拳擦掌赶紧付诸于行动了。没办法,咱们程序员就是这个毛病。那好吧,我也不那么多废话了,直接进入正题吧。我们接下来的demo将包括以下的工程:SiteA —— 基于.net

2013-06-14 17:40:20 16739 15

原创 使用WIF实现单点登录Part II —— Windows Identity Foundation基本原理

在上一篇文章中,我们已经使用WIF构建了一个基于MVC4的简单的身份验证程序,在这篇文章里,我们将探讨一下到底什么是WIF,以及它的工作原理。然后在下一篇文章开始,我们将实际操作,实现单点登录功能。身份标识的挑战在上一篇文章也提及到了,大部分的开发人员并不是安全方面的专家,很多人对于身份验证,授权以及用户体验个性化等工作感觉非常的不爽。传统的计算机技术的课程里通常也不会教这

2013-03-17 18:16:50 13003 6

原创 使用WIF实现单点登录Part I——Windows Identity Foundation介绍及环境搭建

上个月有一个星期的时间都在研究asp.net mvc统一身份验证及单点登录的实现。经过了一番的探索,最终决定使用微软的Windows Identity Foundation。但是这东西用的人貌似不多,而且中文资料甚少,所以在测试的过程中走了不少弯路,所以写下这一系列文章,希望能对以后要使用的朋友带来一点帮助。首先先说一下什么是WIF(Windows Identity Foundation)。由

2013-02-20 23:57:01 18071 6

翻译 MongoDB C# 驱动教程

C# 驱动版本 v1.6.x本教程基于C#驱动 v1.6.x 。 Api 文档见此处: http://api.mongodb.org/csharp/current/.简介本教程介绍由10gen支持的,用于MongoDB的C#驱动。C# 驱动由两个类库组成:BSON Library和C# Driver。 BSON Library 可以独立于 C# Driver 使用。 C#

2013-01-08 22:48:14 12916 1

翻译 mongoDB C# 驱动快速入门

简介本文仅仅让你通过使用C#驱动对mongoDB能够上手。然后你可以参考其余的文档获取更多信息。下载 C# 驱动可以到以下链接下载C#驱动:http://github.com/mongodb/mongo-csharp-driver/downloads如果下载的是 .zip 文件,只需解压后放到任意地方。如果下载的是 .msi 文件,双击运行安装程序,

2013-01-04 14:59:15 9857 5

转载 C#更改gif图片大小后仍然保持动画效果

先声明,不是我原创的,我也是借鉴别人的方法。 public Form1() { InitializeComponent(); PictureBox picImg = new PictureBox(); int width = 100; int height = 6

2012-12-14 17:30:39 11795

翻译 初尝Web API

HTTP 并不是只能用在网页中。它其实还是一个强大的平台,可以用来生成一些API,暴露服务和数据。HTTP很简单灵活,还非常普及。几乎所有你能想到的平台都有HTTP库,所以HTTP服务可以囊括很大范围的客户端,包括浏览器,移动设备和传统的桌面程序。ASP.NET Web API 是.NET Framework上的一个框架,用来生成 web API。 本文将使用ASP.NET Web API

2012-11-10 22:05:50 44563 6

翻译 ASP.NET MVC 4 移动特性

此教程将讨论ASP.NET MVC 4 Web应用程序里的移动特性。对于此教程,可以使用 Visual Studio Express 2012 或者 Visual Web Developer 2010 Express Service Pack 1 ("Visual Web Developer 或者 VWD").  如果你已经有了专业版本的 Visual Studio 你也可以使用。开始

2012-11-08 22:23:58 14556

翻译 将ASP.NET Web应用程序部署到Windows Azure Web Site和SQL 数据库

此教程演示如何在Visual Studio 2012或者 Visual Studio 2012 for Web Express里使用Publish Web向导将一个ASP.NET web应用程序部署到Windows Azure Web Site。如果你喜欢,也可以用Visual Studio 2010 或者 Visual Web Developer Express 2010,本教程也一样适

2012-10-08 00:20:59 10212

翻译 掌握你的未来:以微软的资源与职业理念提升你的技能

今日偶尔读到一本书,名为《 Own Your Future: Update Your Skills with Resources and Career Ideas from Microsoft》,感觉对我们技术人员的职业生涯规划、个人技能提高、面试与沟通技巧等

2011-07-04 22:18:53 7471 3

原创 MonoDroid学习笔记(十四)—— 动态更改屏幕方向

Android手机有个比较有趣的功能,就是当你把手机横过来的时候,手机的内容也会跟着横过来。那么要如何通过程序控制Activity的显示方向呢?在MonoDroid里,若要通过程序改变屏幕显示的方向,只要调用SetRequestedOrientation方法即可,而若要取得当前屏幕的方向,则使用RequestedOrientation属性即可。本范例很简单,界面只有一个按钮,点击它的时候判断当前屏幕方向,如果是竖屏(Portrait),则将其改为横屏(Landscape),反之亦然。布局文件如下:

2011-05-07 22:31:00 14075 6

原创 MonoDroid学习笔记(十三)—— 自制任务管理器,获取正在运行的程序与服务

<br />Android操作系统并没有提供任务管理程序,无从得知后台有哪些程序正在运行,但提供了正在运行的服务列表。这次我们来用MonoDroid来获取手机中正在运行的程序及服务,用ListView列出来,点击ListView的项可以实现关闭程序或服务。<br />这里我没有实现实时获取,而是通过点击两个按钮时才进行获取,布局文件如下:<br /><?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://sc

2011-05-04 22:50:00 6103 3

原创 MonoDroid学习笔记(十二)—— 您有一条新短信息,请注意查收。状态栏提醒

<br />在Android手机界面的最上方有一条显示时间、信号强度和电池状态等信息的区域,这就是Android的状态栏。当系统有一些信息要通知手机用户时,例如,收到新短信,电子邮件或未接来电时,系统通常会把信息显示在状态栏中,有的仅显示小图标,有的则显示图标及文字提醒,用手指按住状态栏往下拉,还可以展开状态栏,查看所有系统发出的信息。<br />在程序中,要如何把提示信息放入状态栏,又要如何显示小图标呢?Android API为了管理通知信息(Notification),定义了NotificationMa

2011-04-25 21:55:00 9784 6

原创 MonoDroid学习笔记(十一)—— 使用SQLiteOpenHelper实现简易备忘录

<br />不管是做winform的还是web的,都难免要和数据库打交道。这次我们就来探讨一下如何在MonoDroid里使用手机上的Portable数据库SQLite。数据库不外乎就是CRUD(增删改查)操作,我们来设计一个简单的数据库来放置备忘录,提醒用户还有哪些工作事项。<br />我们使用Menu来做数据库的增,改,删,同时搭配ListView用以查处已经增加的记录,用一个EditText作为新增或修改的录入框。<br /><?xml version="1.0" encoding="utf-8"?>

2011-04-20 21:15:00 6104 9

原创 MonoDroid学习笔记(十)—— 使用MonoDroid打电话,发短信,发邮件。

这次我们来探讨一下MonoDroid中对AndroidManifest.xml文件的使用,这里以手机中较为常用的打电话,发短信及发邮件作为范例来进行说明。界面将如下所示:布局文件如下:

2011-04-17 17:48:00 6534 11

原创 MonoDroid学习笔记(九)—— 控件大串烧,在Android上做一个CSDN的注册页面。

<br />搞过winform或webform的朋友肯定都对控件非常熟悉,开发过程中界面上都要用到很多的相关控件。今天我们就来学习一下Android里的几个常用控件。拿CSDN的注册页面来作为参考,我们也来布局一个类似的手机页面。<br />CSDN的注册页面如下:http://passport.csdn.net/account/register,查看这个页面的源代码我们就可以发现,它是由一个table来进行布局的。那我们很自然的就想到我们手机的页面就使用TableLayout来进行布局吧:<br /><?

2011-04-12 22:21:00 5198 3

原创 MonoDroid学习笔记(八)—— 如IPhone拖动相片特效,Gallery画廊

<br />曾经被IPhone用手指在屏幕上滑来滑去拖动图片的操作方式吸引吗?在Android里,这并不是什么难事,只要用到Gallery即可。它通常用在设计相册、图片类型的选择器上。<br />在开始之前,先了解一下什么是Context以及Android.Widget命名空间下的BaseAdapter,在Activity当中,Context就如同是Canvas画布,随时等着被处理或覆盖。还记得先前介绍Activity之间的传递时,做过Intent以及Context的应用吗?当中Intent是Android

2011-04-10 19:03:00 5396 1

原创 MonoDroid学习笔记(七)—— 处理Menu功能菜单及"loading"对话框

<br />一般的Android手机上都会有Menu键,那么我们怎么来处理Menu的菜单项和它的点击事件呢?下面这个例子就示范了“关于”对话框和“离开”等功能。<br />要为菜单添加菜单项,就要重写Activity中的OnCreateOptionsMenu方法,而要响应菜单的点击事件,就要重写OnOptionsItemsSelected方法:<br /> public override bool OnCreateOptionsMenu(IMenu menu) {

2011-04-06 22:44:00 6011 13

原创 MonoDroid学习笔记(六)—— 手机的页面转换及页面间的数据传递

<br />做过asp.net或其他web开发的朋友都知道,想要在两个网页间做转换,只要利用超链接就可以实现。但在手机里,要如何实现手机页面之间的转换呢?最简单的方法就是改变Activity的Layout。首先准备两个布局文件Main.axml和Layout2.axml。在Layout1中放置一个按钮,当单击时,显示Layout2,同样地,在Layout2里也放一个按钮,当单击时回到Main.<br /><?xml version="1.0" encoding="utf-8"?><AbsoluteLay

2011-04-05 00:37:00 5135 6

原创 MonoDroid学习笔记(五)—— 更改TextView字体颜色和背景色及Style样式的定义

<br />在winform或webform中,均有Control类,虽然不在同一个程序集中,但都代表“控件”的意思。在Monodroid中,表示控件的类是Android.Views.View。开发过winform或webform的朋友都知道,要在界面上显示文字,只要使用Label控件即可。在Android中,则要使用TextView。<br />要设置一个TextView的文本有两种方法,一是使用资源文件来定义一个字符串常数,然后在布局文件中进行引用。二是直接在后台程序中使用C#代码进行赋值。<br />

2011-04-03 23:29:00 16455 4

原创 MonoDroid学习笔记(四)—— MonoDroid程序界面的布局

    上一篇文章中,我们已经简要分析了一个MonoDroid工程的基本结构,这次我们来讨论更多。每一种应用程序基本都会有用户界面(UI),在.Net里,winform程序的UI是一个form窗体,wpf或silverlight程序的UI是一个xaml,asp.net页面是一个aspx,那么在MonoDroid里,就是一个Activity。上面说的.net里的程序都可以既使用可视化界面进行拖拽,也可以在源代码中进行编辑,但MonoDroid中,只能对xml文件或axml文件进行编辑或者在Activity类中

2011-04-03 01:16:00 6861 9

原创 MonoDroid学习笔记(三)—— 浅析Hello World程序及增添一些新的代码

    我们已经成功地在模拟器和手机上运行起来我们得Hello World程序,那么让我们回过头来看看这个工程的结构。    打开解决方案资源管理器,比较值得我们关注的有以下的文件和文件夹:Activity1.cs,Resources文件夹下的文件夹及文件。    Activity1.cs的内容与一般的C#文件相似。using System;using Android.App;using Android.Content;using Android.Runtime;using Androi

2011-04-01 22:33:00 6300 10

原创 MonoDroid学习笔记(二)—— 让你的App在你的手机上跑起来

<br />    在上一篇文章里我们已经成功的在模拟器中运行了我们的Hello World程序,在这里我先纠正之前的一个错误。之前我以为MonoDroid只能创建2.2以上版本的程序,所以当时我让大家只下载Android SDK 2.2版本,但事实上MonoDroid可以支持的最低版本是1.6,可以在项目的属性中进行设置。首先在解决方案资源管理器中你的项目名上右键,然后点击属性,VS就会打开项目属性窗口,然后在Minimum Android to Target下拉框中选择相应的版本即可。如下图:<br /

2011-03-31 21:14:00 9633 24

原创 MonoDroid学习笔记(一)—— 搭建MonoDroid开发环境及Hello World

<br />近年来,移动应用得到广泛发展,尤其是基于Android与IOS的应用如雨后春笋般爆发。我一直都想涉足这一块的开发,但身为一个.Net开发人员,要从新开始学习Java或ios,时间成本的耗费无疑是巨大的。那么能不能使用.Net来进行Android或IOS的开发呢?Novell公司为我们带来了福音,其开源项目Mono为我们解决了这个难题。它的MonoDroid和MonoTouch正是针对这两个平台的两款开发插件。怀着兴奋的心情,我决定先对MonoDroid进行研究,有兴趣的朋友可以跟我一起学习,大家

2011-03-30 21:05:00 25939 61

原创 C# 4.0的一些新特性

    vs2010正式版4月12日发布了,前几天我也下了一个,但这几天都没有时间好好试用一下,今天针对C#语言的新特性使用了一下,感觉还不错,有几个新特性和大家分享一下,希望我没有太火星……一、新关键词——dynamic    在新版本的C#中,dynamic关键词是一个很重要的新特性,现在你可以创建动态对象并在运行时再决定它的类型。而且.net 4.0为CLR加入了一组为动态语言服务的

2010-04-24 18:10:00 2493 1

原创 微软MVP获奖感想

    这是第三次申请MVP了,第一次是在09年7月,当时在申请截止日期的最后一天匆匆递上申请函,结果可想而知,杳无音讯……第二次是在09年10月,这次准备比第一次充分了不少,参考了近身剪的博客填写了资料,在11月某一晚上的8点多钟,微软一位龙姓MM打电话告知我的申请资料没有填写完整,希望我马上完善后发到她的email,无奈当晚我正在老婆老家火车站里等待回京的火车,故只能作罢。今年1月在做足准备功

2010-04-02 20:34:00 2826 7

翻译 显示数据库表中的数据

本教程的目的是向你介绍如何在ASP.NET MVC程序里显示一个数据库数据的HTML表格。首先,介绍了如何直接在视图中格式化数据库记录。接着,介绍了格式化数据库记录时如何利用 Partial。创建模型类我们将显示 Movies 数据库表中的记录集。Movies 数据库表包含下面的列: 列名称数据类型允许空值IdIntF

2010-03-14 22:32:00 5532 2

翻译 创建自定义HTML Helper

此教程向你演示如何在你的MVC视图里创建自定义HTML Helper。利用 HTML Helpers, 可以减少乏味的输入HTML标签。在教程的第一部分,我描述了ASP.NET MVC框架已有的HTML Helper。然后,我描述了创建自定义HTML Helper的两个方法:我会解释如何通过创建静态方法和扩展方法来创建HTML Helper。理解 HTML HelperHTML Hel

2010-02-28 15:35:00 2864

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

此教程向你提供 ASP.NET MVC 视图简介, 视图数据, 和 HTML Helpers。教程最后,你应该会理解如何创建新视图,从控制器传递数据到视图,和使用 use HTML Helpers 在视图中生成内容。理解视图不像 ASP.NET 或者ASP, ASP.NET MVC 并不包括任何直接对应页面的东西。 在 ASP.NET MVC 应用程序中,硬盘上并不存在与你输入浏览器地址栏

2010-02-25 20:25:00 2872

翻译 创建Action

此教程将向你解释如何创建新的控制器action,学到action方法的要求,还可以学到如何防止方法被暴露为action。向控制器添加Action为控制器添加action就是为控制器添加一个新的方法。例如,代码1中的控制器包含一个名为Index()和一个名为SayHello()。两个方法都暴露为action。代码 1 – Controllers/HomeController.csus

2010-02-24 21:39:00 2791 1

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

这篇教程探讨ASP.NET MVC控制器,控制器action和action result。完成此教程后,你会懂得控制器如何被用来控制访问者与ASP.NET MVC网站的交互方式。理解控制器MVC 控制器负责对ASP.NET MVC网站的请求作出回应。每一个浏览器请求都被映射到一个特定的控制器。例如,想象你在浏览器地址栏输入以下URL:http://localhost/Product/I

2010-02-07 13:32:00 3134

淘宝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关注的人

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