本节书摘来自华章计算机《c++语言导学》一书中的第3章,第3.5节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.5 建议

[1] 本章内容在 [Stroustrup,2013]的第13~15章有更加详细的描述。
[2] 注意把声明(用作接口)和定义(用作实现)区别开来;参见3.1节。
[3] 头文件的作用是描述接口和强调逻辑结构;参见3.2节。
[4] 如果源文件实现了头文件当中的函数,则应该把头文件#include到源文件中;参见3.2节。
[5] 不要在头文件中定义非内联函数;参见3.2节。
[6] 用命名空间来表达逻辑结构;参见3.3节。
[7] 用using指令来为基础库(如std)或某个局部作用域进行(命名空间)转换;参见3.3节。
[8] 不要在头文件中使用using指令;参见3.3节。
[9] 当无法完成既定的任务时,记得抛出一个异常;参见3.4节。
[10] 使用异常进行错误处理;参见3.4节。
[11] 在设计阶段就想好错误处理的策略;参见3.4节。
[12] 用专门设计的用户自定义类型作为异常类型(而非内置类型);参见3.4.1节。
[13] 别试图捕获每个函数中的每个错误;参见3.4节。
[14] 如果你的函数不抛出异常,那么把它声明成noexcept;参见3.4节。
[15] 让构造函数建立不变式,不满足就抛出异常;参见3.4.2节。
[16] 围绕不变式设计你的错误处理策略;参见3.4.2节。
[17] 能在编译时检查的问题尽量在编译时检查(使用static_assert);参见3.4.3节。

《c++语言导学》——3.5 建议相关推荐

  1. 《c++语言导学》——1.7 常量

    本节书摘来自华章计算机<c++语言导学>一书中的第1章,第1.7节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.7 常量 ...

  2. 《c++语言导学》——1.3 Hello,World!

    本节书摘来自华章计算机<c++语言导学>一书中的第1章,第1.3节,[美] 本贾尼·斯特劳斯特卢普 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 He ...

  3. 《Java语言导学(原书第6版)》一一1.5 问题和练习:快速入门

    1.5 问题和练习:快速入门 问题 编译Java程序时,编译器会将源文件翻译成Java虚拟机能识别的平台无关的代码.这种平台无关的代码叫什么? 下述哪项不是有效的代码注释? ![image](http ...

  4. 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  5. 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  6. 模仿下列程序自己打印一个趣味图案c语言,趣味程序导学C语言(28页)-原创力文档...

    C 趣味程序导学 语言 (请到附件里下载源代码与课件) 电脑游戏,一个熟悉而诱人的字眼,常常不经意地浮现在我们的脑海当中. 有梦幻神奇的 <传奇>,有惊险刺激的 <反恐精英>, ...

  7. c语言成颖pdf,程序设计语言开篇导学.ppt-资源下载在线文库www.lddoc.cn

    <程序设计语言>开篇导学.ppt 程序设计语言开篇导学,成颖 教授 博士生导师 南京大学信息管理学院,1.引言,C语言程序设计是计算机相关学科中的一门基础课,也是培养结构化程序设计思想以及 ...

  8. Python语言程序设计 第0周第1周 Python课程导学、基本语法元素

    第0周 Python课程导学 线上线下相结合,手机电脑相结合,长短时间相结合 线上线下 线上看视频/做练习.线下读教材/看资料 手机电脑 视频/作业用手机.编程实践用电脑 长短时间 视频/作业用零碎时 ...

  9. 学习编程语言时,为何有很多人不建议从C语言开始学起[图]

    首先,对于计算机相关专业的同学来说,一定要重视C语言的学习,原因有三个方面,其一是C语言在操作系统开发.嵌入式开发和多媒体开发领域依然有广泛的应用,其二是掌握C语言对于后续计算机专业课的学习有非常积极 ...

最新文章

  1. 一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现3
  2. Python 下载的九种方法
  3. BZOJ 1800: [Ahoi2009]fly 飞行棋( 枚举 )
  4. sharepoint部件webparth关闭找回的方法
  5. php怎么解决雪崩或穿透,Redis之缓存击穿、穿透、雪崩、预热,以及如何解决?...
  6. 平流式初沉池贮砂斗计算_城市污水处理厂产泥量的计算
  7. CentOS安装Confluence Wiki步骤
  8. 百度地图标点点击变色_原神wiki地图工具,原神全地图资源标记全览
  9. paip.提升效率--数据绑定到table原理和流程Angular js jquery实现
  10. PowerBuilder GRID美化
  11. 计算机等级考试二级VB基础教程
  12. 嵌入式软件架构的设计
  13. 用LaTeX写毕业论文-UESTC
  14. 共模电感 | 关键参数的计算步骤
  15. 轮播图左右按钮会被选中的问题
  16. matlab混沌信号 仿真,蔡氏混沌电路的分析和MATLAB仿真
  17. SpringBoot时区配置
  18. Python 框架 之 Django MVT 下的 V 的 视图简单介绍和使用
  19. 标准化(Normalization)
  20. 建立强大的verilog编写环境

热门文章

  1. Linux下shellcode的编写
  2. 团队作业第4次-项目需求分析
  3. EasyUI——实现展示后台数据代码
  4. Win7 x64 PL/SQL 连接 Oralce 提示 Could not initialize %ORACLE_HOME%\bin\oci.dll
  5. Redmine环境搭建
  6. Android在Context详细解释 ---- 你不知道Context
  7. servletcontext 使用解析
  8. Qt-线程启动与关闭实例
  9. C#操作SQLite数据库增、删、改、查 实例
  10. MFC菜单栏(CMenu)控件