• 高质量程序设计指南:—C++/C语言
  • 高质量程序设计指南:—C++/C语言
  • 高质量程序设计指南:—C++/C语言
  • 高质量程序设计指南:—C++/C语言
  • 高质量程序设计指南:—C++/C语言
  • 高质量程序设计指南:—C++/C语言
21年品牌 40万+商家 超1.5亿件商品

高质量程序设计指南:—C++/C语言

有少量笔记划线

70 八五品

仅1件

河南郑州
认证卖家担保交易快速发货售后保障

作者林锐、韩永泉 著

出版社电子工业出版社

出版时间2007-05

版次1

装帧平装

上书时间2023-05-06

阅城书屋

四年老店
已实名 进店 收藏店铺

   商品详情   

品相描述:八五品
图书标准信息
  • 作者 林锐、韩永泉 著
  • 出版社 电子工业出版社
  • 出版时间 2007-05
  • 版次 1
  • ISBN 9787121041143
  • 定价 39.80元
  • 装帧 平装
  • 开本 其他
  • 纸张 胶版纸
  • 页数 394页
  • 字数 659千字
【内容简介】
  高质量程序设计是软件行业的薄弱环节,大部分企业只能大量的测试和改错来提高软件产品的质量,为此付出了高昂的代价。因此,如何让程序员熟练地掌握编程技术和编程规范,在开发过程中内建高质量代码,是IT企业面临的主要挑战之一。
  本书以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。它是作者多年从事软件开发工作的经验总结。本书共17章,第1章到第4章重点介绍软件质量和基本的程序设计方法;第5章到第16章重点阐述C++/C编程风格、面向对象程序设计方法和一些技术专题;第17章阐述STL的原理和使用方法。
  本书第1版和第2版部分章节曾经在Imemet上广泛流传,被国内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软件质量基本概念1
1.1.1如何理解软件的质量1
1.1.2提高软件质量的基本方法3
1.1.3“零缺陷”理念4
1.2细说软件质量属性4
1.2.1正确性4
1.2.2健壮性5
1.2.3可靠性5
1.2.4性能6
1.2.5易用性7
1.2.6清晰性7
1.2.7安全性7
1.2.8可扩展性8
1.2.9兼容性8
1.2.10可移植性8
1.3人们关注的不仅仅是质量9
1.3.1质量、生产率和成本之间的关系9
1.3.2软件过程改进的基本概念11
1.4高质量软件开发的基本方法13
1.4.1建立软件过程规范13
1.4.2复用15
1.4.3分而治之16
1.4.4优化与折中17
1.4.5技术评审18
1.4.6测试19
1.4.7质量保证21
1.4.8改错22
1.5关于软件开发的一些常识和思考24
1.5.1有最好的编程语言吗24
1.5.2编程是一门艺术吗24
1.5.3编程时应该多使用技巧吗24
1.5.4换更快的计算机还是换更快的算法25
1.5.5错误是否应该分等级25
1.5.6一些错误的观念25
1.6小结26
第2章编程语言发展简史27
2.1编程语言大事记27
2.2Ada的故事30
2.3C/C++发展简史31
2.4Borland与Microsoft之争32
2.5Java阵营与Microsoft的较量33
2.6小结36
第3章程序的基本概念37
3.1程序设计语言37
3.2语言实现38
3.3程序库40
3.4开发环境40
3.5程序的工作原理41
3.6良好的编程习惯42
第4章C++/C程序设计入门45
4.1C++/C程序的基本概念45
4.1.1启动函数main()45
4.1.2命令行参数47
4.1.3内部名称48
4.1.4连接规范49
4.1.5变量及其初始化51
4.1.6CRuntimeLibrary52
4.1.7编译时和运行时的不同52
4.1.8编译单元和独立编译技术54
4.2基本数据类型和内存映像54
4.3类型转换56
4.3.1隐式转换56
4.3.2强制转换58
4.4标识符60
4.5转义序列61
4.6运算符62
4.7表达式63
4.8基本控制结构65
4.9选择(判断)结构65
4.9.1布尔变量与零值比较66
4.9.2整型变量与零值比较67
4.9.3浮点变量与零值比较67
4.9.4指针变量与零值比较69
4.9.5对if语句的补充说明70
4.9.6switch结构70
4.10循环(重复)结构71
4.10.1for语句的循环控制变量72
4.10.2循环语句的效率73
4.11结构化程序设计原理78
4.12goto/continue/break语句79
4.13示例80
第5章C++/C常量85
5.1认识常量85
5.1.1字面常量85
5.1.2符号常量86
5.1.3契约性常量87
5.1.4枚举常量87
5.2正确定义符号常量87
5.3const与#define的比较88
5.4类中的常量89
5.5实际应用中如何定义常量90
第6章C++/C函数设计基础95
6.1认识函数95
6.2函数原型和定义96
6.3函数调用方式97
6.4认识函数堆栈99
6.5函数调用规范100
6.6函数连接规范101
6.7参数传递规则102
6.8返回值的规则104
6.9函数内部实现的规则107
6.10存储类型及作用域规则109
6.10.1存储类型109
6.10.2作用域规则110
6.10.3连接类型111
6.11递归函数113
6.12使用断言116

6.13使用const提高函数的健壮性118
6.13.1用const修饰函数的参数118
6.13.2用const修饰函数的返回值119
第7章C++/C指针、数组和字符串121
7.1指针121
7.1.1指针的本质121
7.1.2指针的类型及其支持的运算123
7.1.3指针传递125
7.2数组126
7.2.1数组的本质126
7.2.2二维数组128
7.2.3数组传递129
7.2.4动态创建、初始化和删除数组的方法131
7.3字符数组、字符指针和字符串133
7.3.1字符数组、字符串和\0的关系133
7.3.2字符指针的误区134
7.3.3字符串拷贝和比较134
7.4函数指针135
7.5引用和指针的比较137
第8章C++/C高级数据类型141
8.1结构(Struct)141
8.1.1关键字struct与class的困惑141
8.1.2使用struct142
8.1.3位域145
8.1.4成员对齐147
8.2联合(Union)159
8.3枚举(Enum)161
8.4文件163
第9章C++/C编译预处理165
9.1文件包含165
9.1.1内部包含卫哨和外部包含卫哨165
9.1.2头文件包含的合理顺序166
9.2宏定义166
9.3条件编译169
9.3.1#if、#elif和#else169
9.3.2#ifdef和#ifndef170
9.4#error171
9.5#pragma171
9.6#和##运算符171
9.7预定义符号常量172
第10章C++/C文件结构和程序版式175
10.1程序文件的目录结构175
10.2文件的结构176
10.2.1头文件的用途和结构176
10.2.2版权和版本信息177
10.2.3源文件结构178
10.3代码的版式178
10.3.1适当的空行178
10.3.2代码行及行内空格179
10.3.3长行拆分180
10.3.4对齐与缩进181
10.3.5修饰符的位置182
10.3.6注释风格182
10.3.7ADT/UDT版式183
第11章C++/C应用程序命名规则185
11.1共性规则185
11.2简单的Windows应用程序命名186
第12章C++面向对象程序设计方法概述189
12.1漫谈面向对象189
12.2对象的概念190
12.3信息隐藏与类的封装191
12.4类的继承特性195
12.5类的组合特性200
12.6动态特性201
12.6.1虚函数202
12.6.2抽象基类202
12.6.3动态绑定205
12.6.4运行时多态207
12.6.5多态数组208
12.7C++对象模型215
12.7.1对象的内存映像215
12.7.2隐含成员224
12.7.3C++编译器如何处理成员函数225
12.7.4C++编译器如何处理静态成员225
12.8小结226
第13章对象的初始化、拷贝和析构229
13.1构造函数与析构函数的起源229
13.2为什么需要构造函数和析构函数230
13.3构造函数的成员初始化列表232
13.4对象的构造和析构次序234
13.5构造函数和析构函数的调用时机235
13.6构造函数和赋值函数的重载236
13.7示例:类String的构造函数和析构函数238
13.8何时应该定义拷贝构造函数和拷贝赋值函数239
13.9示例:类String的拷贝构造函数和拷贝赋值函数240
13.10用偷懒的办法处理拷贝构造函数和拷贝赋值函数242
13.11如何实现派生类的基本函数243

第14章C++函数的高级特性247
14.1函数重载的概念247
14.1.1重载的起源247
14.1.2重载是如何实现的247
14.1.3当心隐式类型转换导致重载函数产生二义性249
14.2成员函数的重载、覆盖与隐藏250
14.2.1重载与覆盖250
14.2.2令人迷惑的隐藏规则251
14.2.3摆脱隐藏253
14.3参数的默认值254
14.4运算符重载255
14.4.1基本概念255
14.4.2运算符重载的特殊性256
14.4.3不能重载的运算符257
14.4.4重载++和——257
14.5函数内联259
14.5.1用函数内联取代宏259
14.5.2内联函数的编程风格260
14.5.3慎用内联261
14.6类型转换函数261
14.7const成员函数264
第15章C++异常处理和RTTI267
15.1为什么要使用异常处理267
15.2C++异常处理268
15.2.1异常处理的原理268
15.2.2异常类型和异常对象269
15.2.3异常处理的语法结构270
15.2.4异常的类型匹配规则272
15.2.5异常说明及其冲突272
15.2.6当异常抛出时局部对象如何释放273
15.2.7对象构造和析构期间的异常273
15.2.8如何使用好异常处理技术275
15.2.9C++的标准异常278
15.3虚函数面临的难题278
15.4RTTI及其构成280
15.4.1起源280
15.4.2typeid运算符281
15.4.3dynamic_cast<>运算符283
15.4.4RTTI的魅力与代价285
第16章内存管理287
16.1内存分配方式287
16.2常见的内存错误及其对策288
16.3指针参数是如何传递内存的289
16.4free和delete把指针怎么啦291
16.5动态内存会被自动释放吗292
16.6杜绝“野指针”292
16.7有了malloc/free为什么还要new/delete293
16.8malloc/free的使用要点295
16.9new有3种使用方式296
16.9.1plainnew/delete296
16.9.2nothrownew/delete297
16.9.3placementnew/delete297
16.10new/delete的使用要点300
16.11内存耗尽怎么办301
16.12用对象模拟指针302
16.13泛型指针auto_ptr305
16.14带有引用计数的智能指针306
16.15智能指针作为容器元素310
第17章学习和使用STL323
17.1STL简介323
17.2STL头文件的分布324
17.2.1容器类324
17.2.2泛型算法325
17.2.3迭代器325
17.2.4数学运算库325
17.2.5通用工具325
17.2.6其他头文件326
17.3容器设计原理326
17.3.1内存映像326
17.3.2存储方式和访问方式327
17.3.3顺序容器和关联式容器的比较328
17.3.4如何遍历容器331
17.3.5存储空间重分配问题332
17.3.6什么样的对象才能作为STL容器的元素333
17.4迭代器334
17.4.1迭代器的本质334
17.4.2迭代器失效及其危险性338
17.5存储分配器346
17.6适配器347
17.7泛型算法350
17.8一些特殊的容器354
17.8.1string类354
17.8.2bitset并非set355
17.8.3节省存储空间的vector357
17.8.4空容器358
17.9STL容器特征总结360
17.10STL使用心得362
附录AC++/C试题365
附录BC++/C试题答案与
评分标准369
附录C大学十年375
附录D《大学十年》后记393
附录E术语与缩写解释395
参考文献397
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP