写一个自己的头文件包括了以下几步:
一、#include 源文件需要用到的标准库;
(#include +<文件名>/"文件名" <>为标准系统头文件,""为非系统头文件,查找源于源文件所在路径)
二、编写头文件的内容:
因为头文件将会包含在多个源文件中,所以不应该含有变量和函数的定义,但有三个定义是例外的;
①类的定义;②const对象(常量);③inline函数;
需注意的是const对象在其他包含该头文件的源文件中是不可用的,但可以通过在头文件中const定义前添加extern使其被多个文件共享;
但必须遵循的是"一次定义,多次声明"的规矩,所以我们有必要弄清楚"声明"于"定义"的区别.
三、避免多重包含(头文件保护符)
头文件包含其他头文件,甚至一个头文件被多次包含进同一源文件中是很常见的时,
但我们要避免这同一头文件不会引起该头文件定义的类和对象被多次定义,于是我们在头文件中引入额外预处理设施.
在编写头文件预处理处写入:
#ifndef 自定义变量名(称为"预处理器变量",一般用全大写英文,如SALESITEM_H)
#define 自定义变量名(同上)
#include<>
..........
#endif
原理:文件头中#ifndef SALESITEM_H 测试SALESITEM_H变量是否未定义.如果未定义,则接下来的所有行都会被执行,
直到遇到#endif.相反若果SALESITEM_H已定义那么接下来到#endif间的代码都会被忽略;
换句话说,在编辑器第一次预处理该头文件时会定义SALESITEM_H这个变量,遇到第二次这个头文件时,编译器就会跳过这个头文件的预处理.
从而达到了避免多重包括的效果.