高质量程序设计是软件行业的薄弱环节,大部分企业只能依靠大量的测试和改错来提高软件产品的质量,为此付出了高昂的代价。因此,如何让程序员熟练地掌握编程技术和编程规范,在开发过程中内建高质量代码,是IT企业面临的主要挑战之一。本书以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。本书共17章,第1章到第4章重点介绍软件质量和基本的程序设计方法;第5章到第16章重点阐述 C++/C编程风格、面向对象程序设计方法和一些技术专题;第17章阐述STL 的原理和使用方法。本书第1版和第2版部分章节曾经在Internet上广泛流传,被国内IT企业的不少软件开发人员采用。本书的附录C《大学十年》是作者在网上发表的一个短篇传记,文中所描述的充满激情的学习和生活态度,感染了大批莘莘学子。本书的主要读者对象是IT企业的程序员和项目经理,以及大专院校的本科生和研究生。

作者

林锐,1973年生。1990年至1996年,就读于西安电子科技大学,获硕士学位。 1997年至2000年,就读于浙江大学计算机系,获博士学位。大学期间两度被评为中国百名跨世纪优秀大学生,1996年获电子工业部科技进步二等奖,1997年获首届中国大学生电脑大赛软件展示一等奖。2000年7月加入上海贝尔有限公司,从事软件工程和CMM的研究推广工作,2003年7月当选为Alcatel集团软件工程专家。2004年初创建上海漫索计算机科技有限公司(http://www.chinaspis.com),致力于创作适合国内企业需求的软件研发管理解决方案,包括方法论和软件产品。工作期间出版著作六部。

查看全部
目录

内容简介

前言

第1章 高质量软件开发之道

1.1 软件质量基本概念

1.2 细说软件质量属性

1.3 人们关注的不仅仅是质量

1.4 高质量软件开发的基本方法

1.5 关于软件开发的一些常识和思考

1.6 小结

第2章 编程语言发展简史

2.1 编程语言大事记

2.2 Ada的故事

2.3 C/C++发展简史

2.4 Borland与Microsoft之争

2.5 Java阵营与Microsoft的较量

2.6 小结

第3章 程序的基本概念

3.1 程序设计语言

3.2 语言实现

3.3 程序库

3.4 开发环境

3.5 程序的工作原理

3.6 良好的编程习惯

第4章 C++/C程序设计入门

4.1 C++/C程序的基本概念

4.2 基本数据类型和内存映像

4.3 类型转换

4.4 标识符

4.5 转义序列

4.6 运算符

4.7 表达式

4.8 基本控制结构

4.9 选择(判断)结构

4.10 循环(重复)结构

4.11 结构化程序设计原理

4.12 goto/continue/break语句

4.13 示例

第5章 C++/C常量

5.1 认识常量

5.2 正确定义符号常量

5.3 const与#define的比较

5.4 类中的常量

5.5 实际应用中如何定义常量

第6章 C++/C函数设计基础

6.1 认识函数

6.2 函数原型和定义

6.3 函数调用方式

6.4 认识函数堆栈

6.5 函数调用规范

6.6 函数连接规范

6.7 参数传递规则

6.8 返回值的规则

6.9 函数内部实现的规则

6.10 存储类型及作用域规则

6.11 递归函数

6.12 使用断言

6.13 使用const提高函数的健壮性

第7章 C++/C指针、数组和字符串

7.1 指针

7.2 数组

7.3 字符数组、字符指针和字符串

7.4 函数指针

7.5 引用和指针的比较

第8章 C++/C高级数据类型

8.1 结构(struct)

8.2 联合(Union)

8.3 枚举(Enum)

8.4 文件

第9章 C++/C编译预处理

9.1 文件包含

9.2 宏定义

9.3 条件编译

9.4 #error

9.5 #pragma

9.6 #和##运算符

9.7 预定义符号常量

第10章 C++/C文件结构和程序版式

10.1 程序文件的目录结构

10.2 文件的结构

10.3 代码的版式

第11章 C++/C应用程序命名规则

11.1 共性规则

11.2 简单的Windows应用程序命名

第12章 C++面向对象程序设计方法概述

12.1 漫谈面向对象

12.2 对象的概念

12.3 信息隐藏与类的封装

12.4 类的继承特性

12.5 类的组合特性

12.6 动态特性

12.7 C++对象模型

12.8 小结

第13章 对象的初始化、拷贝和析构

13.1 构造函数与析构函数的起源

13.2 为什么需要构造函数和析构函数

13.3 构造函数的成员初始化列表

13.4 对象的构造和析构次序

13.5 构造函数和析构函数的调用时机

13.6 构造函数和赋值函数的重载

13.7 示例:类String的构造函数和析构函数

13.8 何时应该定义拷贝构造函数和拷贝赋值函数

13.9 示例:类String的拷贝构造函数和拷贝赋值函数

13.10 用偷懒的办法处理拷贝构造函数和拷贝赋值函数

13.11 如何实现派生类的基本函数

第14章 C++函数的高级特性

14.1 函数重载的概念

14.2 成员函数的重载、覆盖与隐藏

14.3 参数的默认值

14.4 运算符重载

14.5 函数内联

14.6 类型转换函数

14.7 const成员函数

第15章 C++异常处理和RTTI

15.1 为什么要使用异常处理

15.2 C++异常处理

15.3 虚函数面临的难题

15.4 RTTI及其构成

第16章 内存管理

16.1 内存分配方式

16.2 常见的内存错误及其对策

16.3 指针参数是如何传递内存的

16.4 free和delete把指针怎么啦

16.5 动态内存会被自动释放吗

16.6 杜绝“野指针”

16.7 有了malloc/free为什么还要new/delete

16.8 malloc/free的使用要点

16.9 new有3种使用方式

16.10 new/delete的使用要点

16.11 内存耗尽怎么办

16.12 用对象模拟指针

16.13 泛型指针auto_ptr

16.14 带有引用计数的智能指针

16.15 智能指针作为容器元素

第17章 学习和使用STL

17.1 STL简介

17.2 STL头文件的分布

17.3 容器设计原理

17.4 迭代器

17.5 存储分配器

17.6 适配器

17.7 泛型算法

17.8 一些特殊的容器

17.9 STL容器特征总结

17.10 STL使用心得

附录A C++/C试题

附录B C++/C试题答案与评分标准

附录C 大学十年

附录D 《大学十年》后记

附录E 术语与缩写解释

查看全部
书评
查看更多
请您登录后发表评论 登录 | 注册
我的评分:
提交
0/400