博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++编写自己的头文件
阅读量:5010 次
发布时间:2019-06-12

本文共 797 字,大约阅读时间需要 2 分钟。

写一个自己的头文件包括了以下几步:

一、#include 源文件需要用到的标准库;

(#include +<文件名>/"文件名"    <>为标准系统头文件,""为非系统头文件,查找源于源文件所在路径)

二、编写头文件的内容:

 因为头文件将会包含在多个源文件中,所以不应该含有变量和函数的定义,但有三个定义是例外的;

  ①类的定义;②const对象(常量);③inline函数;

  需注意的是const对象在其他包含该头文件的源文件中是不可用的,但可以通过在头文件中const定义前添加extern使其被多个文件共享;

  但必须遵循的是"一次定义,多次声明"的规矩,所以我们有必要弄清楚"声明"于"定义"的区别.

三、避免多重包含(头文件保护符)

 头文件包含其他头文件,甚至一个头文件被多次包含进同一源文件中是很常见的时,

 但我们要避免这同一头文件不会引起该头文件定义的类和对象被多次定义,于是我们在头文件中引入额外预处理设施.

 在编写头文件预处理处写入:

 #ifndef 自定义变量名(称为"预处理器变量",一般用全大写英文,如SALESITEM_H)

 #define 自定义变量名(同上)

 #include<>

 ..........

 #endif

原理:文件头中#ifndef SALESITEM_H 测试SALESITEM_H变量是否未定义.如果未定义,则接下来的所有行都会被执行,

直到遇到#endif.相反若果SALESITEM_H已定义那么接下来到#endif间的代码都会被忽略;

换句话说,在编辑器第一次预处理该头文件时会定义SALESITEM_H这个变量,遇到第二次这个头文件时,编译器就会跳过这个头文件的预处理.

从而达到了避免多重包括的效果.

转载于:https://www.cnblogs.com/boloyonghao/archive/2012/07/10/2585466.html

你可能感兴趣的文章
iOS关于RunLoop和Timer
查看>>
SQL处理层次型数据的策略对比:Adjacency list vs. nested sets: MySQL【转载】
查看>>
已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
查看>>
MySQL的随机数函数rand()的使用技巧
查看>>
thymeleaf+bootstrap,onclick传参实现模态框中遇到的错误
查看>>
python字符串实战
查看>>
wyh的物品(二分)
查看>>
12: xlrd 处理Excel文件
查看>>
综合练习:词频统计
查看>>
中文url编码乱码问题归纳整理一
查看>>
Cesium应用篇:3控件(3)SelectionIndicator& InfoBox
查看>>
58. Length of Last Word(js)
查看>>
前端面试题汇总(持续更新...)
查看>>
如何成为F1车手?
查看>>
QT自定义消息
查看>>
Save (Not Permitted) Dialog Box
查看>>
装饰模式(Decorator)
查看>>
任务13:在Core Mvc中使用Options
查看>>
利用Excel 2010数据透视图实现数字的可视化的图形直观展示
查看>>
Sort Colors
查看>>