《c++语言导学》——1.10 建议

1.10 建议

[1] 本章内容在 [Stroustrup,2013]的第5~6章、第9~10章和第12章有更加详细的
描述。
[2] 不必慌张,一切知识都会随着时间推移变得逐渐清晰;参见1.1节。
[3] 要想写出漂亮的程序,你不需要知道C++的所有细节。
[4] 请关注编程技术,而非语言特性。
[5] 关于语言定义的一切问题,尽在ISO C++标准;参见14.1.3节。
[6] 把有意义的一组操作“打包”成函数,然后给它起个好名字;参见1.4节。
[7] 一个函数最好只处理一个明确的逻辑操作;参见1.4节。
[8] 对于函数来说,愈简单愈好;参见1.4节。
[9] 函数重载的适用情况是,几个函数的任务相同而处理的类型不同;参见1.4节。
[10] 如果一个函数可能得在编译时求值,那么把它声明成constexpr;参见1.7节。
[11] 别使用“魔法常量”,尽量使用符号化的常量;参见1.7节。
[12] 一条声明语句只声明一个名字。
[13] 定义名字时,让普通的和局部的名字短一些,特殊的和非局部的名字则可以长一点。
[14] 避免使用形似的名字。
[15] 不要出现字母全是大写的名字。
[16] 当指明了类型名字时,建议在声明语句中使用{}形式的初始值列表;参见1.5节。
[17] 当使用auto关键字时,建议在声明语句中使用=进行初始化;参见1.5节。
[18] 尽量避免使用未经初始化的变量;参见1.5节。
[19] 作用域的范围不要过大;参见1.6节。
[20] 使用指针时尽量简单、直接一些;参见1.8节。
[21] 建议使用nullptr,别再使用0和NULL了;参见1.8节。
[22] 如果你还不打算初始化一个变量,那就先别声明它;参见1.8节,1.9节。
[23] 代码中一目了然的事情就不要加注释。
[24] 注释是用来解释编程意图的。
[25] 保持一致的缩进风格。
[26] 尽量避免复杂的表达式。
[27] 尽量避免窄化类型转换;参见1.5节。

时间: 2025-01-27 23:50:01

《c++语言导学》——1.10 建议的相关文章

《c++语言导学》——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)或某个局部

《c++语言导学》——2.6 建议

2.6 建议 [1] 本章内容在[Stroustrup,2013]的第8章有更加详细的描述.[2] 把有关联的数据组织在一起(struct或者class):参见2.2节.[3] 在class中区分接口部分和实现部分:参见2.3节.[4] 结构struct其实就是一个成员在默认情况下均为public的类(class):参见2.3节.[5] 构造函数负责执行和简化类的初始化过程:参见2.3节.[6] 避免使用"裸"union,把它置于类当中形成类型域:参见2.4节.[7] 用枚举类型来表示

《Java语言导学(原书第6版)》一一3.1 变量

3.1 变量 根据第2章可知,对象的状态存储在字段中: 2.1节已经介绍了字段的概念,但读者仍可能会问:命名字段有什么规则和约定?除了整型,是否还有其他数据类型?字段在声明时是否必须初始化?如果字段没有显式初始化,该字段是否会被赋予一个默认值?本章将会详细解答这些问题.但在此之前,先要明确一些技术差别.Java程序语言同时使用字段和变量.对于新的开发人员而言,这是造成概念混淆的主要原因,因为两者经常看似指代同一个事物.Java程序语言定义了如下变量: 实例变量(非静态字段).就技术而言,对象将个

《Java语言导学(原书第6版)》一3.1 变量

3.1 变量 根据第2章可知,对象的状态存储在字段中: 2.1节已经介绍了字段的概念,但读者仍可能会问:命名字段有什么规则和约定 除了整型,是否还有其他数据类型?字段在声明时是否必须初始化?如果字段没有显式初始化,该字段是否会被赋予一个默认值?本章将会详细解答这些问题.但在此之前,先要明确一些技术差别.Java程序语言同时使用字段和变量.对于新的开发人员而言,这是造成概念混淆的主要原因,因为两者经常看似指代同一个事物.Java程序语言定义了如下变量: 实例变量(非静态字段).就技术而言,对象将个

《Java语言导学(原书第6版)》一3.4 控制流语句

3.4 控制流语句 源文件中的语句通常按照出现的先后次序自顶向下执行.控制流语句打破了这种常规,它通过决策.循环和分支等,使程序可以有条件地执行特定的代码块.本节介绍Java程序语言支持的决策语句(if-then.if-then-else.switch).循环语句(for.while.do-while)和分支语句(break.continue.return). 3.4.1 if-then语句和if-then-else语句 1.if-then语句 if-then语句是最基本的控制流语句.该语句使得

《c++语言导学》—— 导读

前言 现在的C++仿佛进化成了一种新的语言.与C++98相比,C++11更易于我们清晰.简洁.直观地表达思想.而且编译器可以更好地检查程序中的错误,程序的运行速度也提高了. 就像其他任何一种现代编程语言一样,C++的规模庞大且提供的库异常丰富,值得程序员认真学习以便高效地利用.这本小册子的目的是让有经验的程序员快速了解现代C++语言,因此它几乎介绍了C++的全部核心功能和重要的标准库组件.读者花费几个小时就能读完本书,但是想必所有人都清楚,要想写出漂亮的C++程序绝非一日之功.好在本书的目的并非

《Java语言导学(原书第6版)》一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用

《Java语言导学(原书第6版)》一一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用

《Java语言导学(原书第6版)》一导读

前 言 自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代.正如Java Community Process计划的活动所印证的,Java语言将不断发展.本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API. 相比本书第5版(针对的是Java版本7),第6版有一些新特点: Lambda表达式使得功能可作为方法参数使用,代码作为数据使用.Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁.4.4.