本文主要是介绍【Clean C++】 读书笔记 第四章,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Clean C++ code 第四章 读书笔记
命名与注释
- 源代码文件、命名空间、类、模板、函数、参数、变量和常量等,都应该具有意义的名字
- 名称应该自注释
- 不要为易懂的代码写注释
函数
- 函数应当只做一件事,而且尽可能的小
- 目前c++编译器对函数优化已经做的足够好,可以写小函数,不会有开销的影响
- 函数的参数应该尽可能的少,一个参数比较理想。
- 避免在函数的参数使用bool类型的标志参数,因为这样调用时不可避免的需要使用true/false, 可以通过函数组合调用的方式,或者通过派生的方式控制不同的行为
- 避免使用输出参数,因为用户可能不知道函数会改变输出参数,如果参数结合紧密,可以将其定义为类/结构体,也可以使用std::tuple或者std::pair,将多个输出结果组合输出
- 如果在类中声明成员函数后附加override,那么编译器将检查该函数是否为虚函数,并从基类覆盖虚函数,防止因为错别字而声明新的函数。
- 不要输出0,NULL, nullptr,这样将对nullptr的判断处理交给了用户。
- 从c++11开始,我们可以将大型的对象作为返回值直接返回,而不需要考虑昂贵的拷贝构造代价,即会自动使用move语义。
- 使用引用而不是指针作为函数参数,可以防止指针没有被初始化
10.如果不可避免地处理指向资源的指针,请使用智能指针
C++工程中C风格代码
- 使用c++的string代替char*
// 该数组固定大小,无法扩展
// 传递时,需要使用char*传递到函数中
// 尾部会+1,存入\0,将size变为8,\0的值不能被更改
char name[] = "Stephan";
// 常量输出,不可更改
const char* const name = "stephan";
- 避免使用printf(),sprintf()和gets()
- 类可以通过使用输入输出运算符的重载而直接std::cout << object;
- 使用标准的容器库而不是c风格的数组,使用array替代
4.1 c风格的数组作为参数传递时,无法知道数组大小
4.2 c风格的数组不具有STL兼容的接口 - 使用c++类型转换static_cast,而不是c风格的强制转换。c++风格的类型转换会在编译时期进行检查,而c风格的类型转换不会在编译时期进行检查,因而运行时期可能出错。
- 避免使用define宏,考虑到常见的算符优先级导致的错误,使用常量表达式constexpr替代。
这篇关于【Clean C++】 读书笔记 第四章的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!