百度云及其他网盘下载地址:点我

编辑推荐

《C++编程规范:101条规则、准则与 实践》:良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在《C++编程规范:101条规则、准则与 实践》中,两位全世界最受尊敬的c++专家将全球c++社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位c++程序员应该遵循的行事准则。
《C++编程规范:101条规则、准则与 实践》涵盖了c++程序设计的每一个方面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、stl容器和算法等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;另外还给出了从类型定义到错误处理等方面的大量c++ 实践,包括许多最新总结和标准化的技术,即使使用c++多年的程序员也会从中受益匪浅。
通过阅读《C++编程规范:101条规则、准则与 实践》,可以找到以下问题的答案
哪些东西值得标?准化?哪些东西不值得标准化?
使代码可扩展的 方法是什么?
合理的错误处理策略有哪些要素?
如何(和为什么要)避免不必要的初始化、循环依赖和定义依赖?
何时应该(以及如何)同时使用静态和动态的多态性?
如何实践“安全的”改写?
何可时该提供不会失败的交换?
为什么要阻止异常跨越模块边界传播7如何阻止?
为什么不应该在头文件中写名字空问声明或指令?
为什么应该使用STL vector和string代替数组?
如何选择正确的STL搜索算法?
为了保证代码的类型安全,应该遵从哪些规则?
C++界20年集大成之作
两位世界 专家联袂巨献
适合所有层次C++程序员

作者简介

作者:(加拿大)萨特(Herb Sutter) (罗马)亚历山德雷斯库(Andrei Alexandrescu) 译者:刘基诚

萨特,(Herb Sutter) 曾任ISO C++标准委员会主席,是C++ Users Journal杂志特邀编辑和专栏作家。他目前在微软公司领导.NET环境下C++语言扩展的设计工作。除本书外,他还撰写了三本广受赞誉的图书:Exceptional C++ Style、Exceptional C++和More Exceptional C++。前者中译本也由人民邮电出版社出版。
亚历山德雷斯库(Andrei Alexandrescu)世界顶尖的C++专家,C++ Users Journal杂志的专栏作家,他的Modem C++ Design一书曾荣获2001年最佳C++图书称号,所开发的Loki已经成为最负盛名的C++程序库之一。

目录

组织和策略问题 1 
第0条 不要拘泥于小节(又名:了解哪些东西不应该标准化) 2 
第1条 在高警告级别干净利落地进行编译 4 
第2条 使用自动构建系统 7 
第3条 使用版本控制系统 8 
第4条 做代码审查 9设计风格 11 
第5条 一个实体应该只有一个紧凑的职责 12 
第6条 正确、简单和清晰第一 13 
第7条 编程中应知道何时和如何考虑可伸缩性 14 
第8条 不要进行不成熟的优化 16 
第9条 不要进行不成熟的劣化 18 
第10条 尽量减少全局和共享数据 19 
第11条 隐藏信息 20 
第12条 懂得何时和如何进行并发性编程 21 
第13条 确保资源为对象所拥有。使用显式的raii和智能指针 24 
编程风格 27 
第14条 宁要编译时和连接时错误,也不要运行时错误 28 
第15条 积极使用const 30 
第16条 避免使用宏 32 
第17条 避免使用“魔数” 34 
第18条 尽可能局部地声明变量 35 
第19条 总是初始化变量 36 
第20条 避免函数过长,避免嵌套过深 38 
第21条 避免跨编译单元的初始化依赖 39 
第22条 尽量减少定义性依赖。避免循环依赖 40 
第23条 头文件应该自给自足 42 
第24条 总是编写内部#include保护符,决不要编写外部#include保护符 43 
函数与操作符 45 
第25条 正确地选择通过值、(智能)指针或者引用传递参数 46 
第26条 保持重载操作符的自然语义 47 
第27条 优先使用算术操作符和赋值操作符的标准形式 48 
第28条 优先使用++和——的标准形式。优先调用前缀形式 50 
第29条 考虑重载以避免隐含类型转换 51 
第30条 避免重载&&、

百度云及其他网盘下载地址:点我

c++书籍推荐《C++编码规范》下载的更多相关文章

  1. iOS 注释的5要3不要和编码规范的26个方面

    注释 代码注释,可以说是比代码本身更重要.这里有一些方法可以确保你写在代码中的注释是友好的: 不要重复阅读者已经知道的内容 能明确说明代码是做什么的注释对我们是没有帮助的. // If the col ...

  2. Objective-C编码规范

    参考 http://www.csdn.net/article/2015-06-01/2824818-objective-c-style-guide/1 介绍 我们制定Objective-C编码规范的原 ...

  3. Objective-C编码规范:26个方面解决iOS开发问题

    介绍 我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致.即使我们有很多不同的作者来完成不同的书籍. 这里编码规范有可能与你看到的其他Object ...

  4. raywenderlich.com Objective-C编码规范

    原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : r ...

  5. Ray Wenderlich 的 Objective-C编码规范

    由于我正在准备模仿饿了么这个app,到时可能有些iOS开发者参与进来.这时如果每个人的Objective-C编码风格都不一样,这样不易于保持代码一致性和难以Code Review.所以我在网上搜索到  ...

  6. Objective-C编码规范[译]

    原文链接 : The official raywenderlich.com Objective-C style guide 原文作者 : raywenderlich.com Team 译文出自 : r ...

  7. 最全面的C/C++编码规范总结

    C语言是面向过程的,而C++是面向对象的 对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性.可维护性.例如我们可以规定某 ...

  8. python经典书籍推荐:python编码规范

    目录INF-qa Python 编码规范................................................................................ ...

  9. 推荐的PHP编码规范

    推荐的PHP编码规范 发布时间: 2014-05-7 浏览次数:2754 分类: PHP教程 推荐的PHP编码规范 一 编辑器设置 1. 使用Tab缩进,不要使用空格 鉴于很多编辑器在保存文件时会自动 ...

  10. python书籍推荐:python编码推荐(高清完整pdf)

    目录INF-qa Python 编码规范................................................................................ ...

随机推荐

  1. MyBatis 问题 & 解决

    # 问题 Invalid bound statement (not found) # 解决 <mappers> 标签的包括的是 SQL 语句存在的地方,此外 <mapper> ...

  2. ubuntu 16.04 安装 openjdk 1.7

    由于编译Android源码需要openjdk1.7.X版本.ubuntu 16.04自带openjdk为1.8.X版本. sudo apt-get install openjdk-7-jre 或者su ...

  3. ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第一章_引言 - ArcGIS知乎-新一代ArcGIS问答社区 1 引言 1.1 读者定位 我们假设用户在阅读本指南前应已具备以下知识: · 熟悉W ...

  4. 问题记录,Release模式和Debug运行效果不一样,Release必须加延时

    这个程序大体是这样一个逻辑,通过win32程序与设备交互,主线程先向设备发送命令要求 循环验证 然后一个线程专门负责接收设备返回信息 两边通过全局变量的变化来交流,主线程通过接收线程收到的信息设置界面 ...

  5. no identifier specified for entity错误

    未给entity类添加主键造成. 之前出现这个错误是因为忘记给id添加@Id标签.

  6. delphi 获取当前进程的cpu占用率

    type  TProcessCpuUsage = record  private    FLastUsed, FLastTime: Int64;    FCpuCount:Integer;  publ ...

  7. 更换Qt QtEmbedded库的版本出现问题及解决(交叉编译OpenSSL)

    近日将QtEmbedded库的版本由4.7.0更新到4.7.4.工具链并未改变,仍为 Target: arm-none-linux-gnueabiConfigured with: ......Thre ...

  8. How to Use the Dynamic Link Library in C++ Linux (C++调用Delphi写的.so文件)

    The Dynamic Link Library (DLL) is stored separately from the target application and shared among dif ...

  9. 因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间

    导致你的问题的,应该有2种可能性: 1.存放你的primary文件组的磁盘,已经满了: use master--你的数据库名称 go --看看你的primary组里的文件 select ds.name ...

  10. 为什么Python中“2==2>1”结果为True

    在Python中,你可能会发现这样一个奇怪的现象: >>> 2 == 2 > 1 True >>> (2 == 2) > 1 False >> ...