《编码的法则 C++程序员不可不知的101条实用经验》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:刘光编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2014
  • ISBN:9787113176532
  • 页数:442 页
图书介绍:本书深入浅出地介绍了C++语言的各种语法特性,既是一本实用参考书,也是笔者多年以来对C++开发的经验和感悟。以实例为背景,结合主题,探讨C++面向对象的深入细节,有助于读者加深对C++开发的认识,提升解决实际问题的能力。

第1篇 C++基本语言特征 1

第1章 快速入门 1

实用经验1C++程序由哪些部分构成 2

实用经验2既有面向过程,为何还要面向对象 6

实用经验3掌握在C++中如何使用C 10

实用经验4C++比C加了什么 15

第2章 变量和类型 21

实用经验5计算机是如何存储变量的 22

实用经验6确保每个对象在使用前已被初始化 28

实用经验7局部变量和全局变量的差别 31

实用经验8掌握变量定义的位置与时机 37

实用经验9引用难道只是别人的替身 39

实用经验10枚举和一组预处理的#define有何不同 42

实用经验11为何struct x1{struct x1 stX};无法通过编译 46

实用经验12实现可变数组struct{int namelen;char namestr[1];}; 50

实用经验13typedef使用的陷阱 54

实用经验14优化结构体中元素的布局 58

实用经验15既有结构,为何引入联合 64

实用经验16提防隐式转换带来的麻烦 67

实用经验17深刻理解void和void 73

实用经验18如何判定变量是否相等 77

第3章 关键字 84

实用经验19尽可能多地使用const 85

实用经验20volatile和mutable用在何处 89

实用经验21尽量用new/delete替代malloc/free 95

实用经验22使用new/delete时要采用相同的形式 101

实用经验23sizeof和对象的大小 104

实用经验24谨慎使用static 112

第4章 数组和指针 118

实用经验25理解指针的本质 119

实用经验26论数组和指针的等价性 124

实用经验27再论数组和指针的差异性 127

实用经验28充满疑惑的数组指针和指针数组 130

实用经验29禁止以多态的形式处理数组 133

实用经验30防微杜渐,拒绝野指针 136

实用经验31臭名昭著的空指针到底是什么 139

实用经验32多维数组和指针 143

实用经验33引用和指针的差异 148

第5章 表达式和语句 154

实用经验34运算符引发的混乱 155

实用经验35尽量使用C++转换操作符 159

实用经验36表达式求值顺序不要想当然 163

实用经验37switch-case的陷阱 167

实用经验38a‖b和a&&b的陷阱 172

实用经验39“悬挂”else引起的问题 176

实用经验40标示语句结束的分号的思考 179

实用经验41goto真的一无是处吗 182

实用经验42条件操作符和逗号操作符 187

实用经验43同魔鬼数字说再见 189

实用经验44关于循环语句的讨论 191

第6章 函数 196

实用经验45禁止函数返回局部变量的引用 197

实用经验46函数传值、传指针及传引用的效率分析 201

实用经验47内联函数会像宏一样替换吗 207

实用经验48函数重载需考虑什么 210

实用经验49不要让main返回void 216

实用经验50尽量拒绝使用变参函数 219

实用经验51如何降低函数的圈复杂度 225

第7章 字符和字符串 230

实用经验52关于字符编码的讨论 231

实用经验53请牢记字符串结束标志为‘\0’ 233

实用经验54请务必小心使用memcpy0系列函数 236

实用经验55正确地使用字符串处理函数 238

第8章 预处理 242

实用经验56使用#define定义字面值和伪函数 243

实用经验57#define的使用陷阱 247

实用经验58防止重复包含头文件 252

实用经验59assert的副作用 255

实用经验60关于#和##的讨论 259

第2篇 类和数据抽象 262

第9章 类 262

实用经验61绝不让构造函数为虚函数 263

实用经验62避免在构造/析构函数中调用虚函数 266

实用经验63不使用编译器自动生成的函数,就明确拒绝 269

实用经验64struct和class的关系 271

实用经验65class对象大小与什么有关系 276

实用经验66将成员变量声明为private 282

实用经验67关于对象复制的思考 286

实用经验68首选初始化列表实现类成员初始化 290

实用经验69理解常量成员函数 293

第10章 重载操作符 298

实用经验70由重载&&、‖和,操作符想到的 299

实用经验71区别++/--操作符前置和后置差异 304

实用经验72重载operator[]的注意事项 308

实用经验73重载operator=的陷阱 311

实用经验74重载操作符,类成员函数还是友元函数 318

实用经验75有些运算符重载应该成对实现 323

第3篇 C++面向对象机制 325

第11章 继承和多态 325

实用经验76多态基类的析构函数应为虚函数 326

实用经验77明晰public、protected、private3种继承差别 331

实用经验78慎用多继承机制 336

实用经验79时刻提防对象切片 341

实用经验80明晰派生类构造/析构运行原理 345

实用经验81谨慎使用private继承 351

实用经验82区分overloading、overriding、hiding的差异 354

实用经验83确保public继承是“is-a”关系 359

实用经验84区分接口继承和实现继承 362

实用经验85不要重新定义继承而来的非虚函数 366

实用经验86绝对不要重新定义继承而来的默认参数 368

实用经验87切忌继承过度滥用 372

实用经验88虚函数重载的陷阱 376

实用经验89关于虚赋值的问题 379

第12章 模板和泛型 384

实用经验90将模板的声明和定义放到一个文件中 385

实用经验91区分继承、模板及组合 391

实用经验92区分函数模板与模板函数、类模板和模板类 395

第4篇 C++高级特性 400

第13章 高级特性 400

实用经验93合理地使用断言(ASSERT) 401

实用经验94虚函数的实现原理 404

实用经验95检测和定位内存泄漏的技巧 412

实用经验96可执行文件*.exe(*.dll)剖析 419

实用经验97C++为何引入命名空间 424

实用经验98避免使用“聪明的技巧” 429

实用经验99试着在代码中使用设计模式 431

实用经验100改善C++程序运行效率的措施 434

实用经验101提高(改善)代码可读性的措施 439