首页 > 代码库 > C++ primer记录

C++ primer记录

关于C++编程风格,可参考:Google 开源项目风格指南

 


第一章:开始

头文件:由于嵌套包含文件的原因,一个头文件可能会被多次包含在一个源文件中。
条件指示符可防止这种头文件的重复处理,例如:
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
/* Bookstore.h 的内容 */
#endif
为了保证头文件只被处理一次,把如下#define 指示符
#define BOOKSTORE_H
放在#ifndef 后面,这样在头文件的内容第一次被处理时,BOOKSTORE_H 将被定义,从而防止了在程序文本文件中以后#ifndef 指示符的值为真。
这就是头文件的常用书写方式。

名字空间:库文件厂商用名字空间来控制全局名字空间污染(即名字冲突)问题,以避免它们的库污染了用户程序的名字空间。因此我们尽量不使用use namespace XXX这种方式写代码,以免造成名字空间的污染。

 


第二章:C++浏览

动态申请内存:
如:int *p = new int[5];
当我们用完了动态分配的对象或者对象的数组时,我们必须显示地释放这些指针,否则就会造成内存泄露现象。
内存泄漏是指一块动态分配的内存,我们不再拥有指向这块内存的指针,因此我们没有办法将它返还给程序供以后重新使用。
有一些专门检查内存泄露的工具,比如轻量级别的valgrind等。

关键字:explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。

 

C++ primer记录