加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于c++自定义头文件

(2012-09-04 10:31:34)
标签:

教育

       一般类定义都会放入头文件中。c++支持分别编译,比如,我们要定义一个myself类,把它放在my.h头文件中,然后像main这样使用myself类的对象的函数放在其他的源文件中,任何使用myself的源文件都必须包含my.h头文件。

        头文件一般包含类的定义、extern变量的声明和函数的声明。头文件的正确使用能够带来两个好处:保证所有文件使用给定实体的同一声明;当声明需要修改时,只有头文件需要更新。

        需要注意的是,头文件是用于声明而不是用于定义。定义只可以出现一次,而声明则可以出现多次。因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义,但是有三个例外,头文件可以定义类、值在编译时就已知道的const对象和inline函数,这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的(在头文件中定义这些实体是因为编译器需要它们的定义来产生代码,例如:为了产生能定义或使用类的对象的代码,编译器需要知道组成该类型的数据成员,同样还需要知道能够在这些对象上执行的操作)。

        头文件经常需要其他头文件,头文件中会#include其他头文件,因为头文件定义的实体经常使用其他头文件的设施,例如包含string库等。有时候一个头文件被多次包含进同一源文件,例如,一次通过程序本身直接包含,另一次是通过自定义头文件间接包含。

        因此,在设计头文件时,应使其可以多次包含在同一源文件中,我们必须保证多次包含同一头文件不会引起该头文件定义的类和对象被多次定义。通常情况下,避免该结果的做法是使用头文件保护符来避免多重包含。

 

#ifndef MY_H

#define MY_H

//Definition of Myself class and related functions here

#endif


        这段程序用来测试MY_H预处理器变量是否位定义,如果未定义,则测试为真,执行后面所有程序,直到#endif,如果已定义了MY_H,那么测试为假,从#ifndef#endif之间的所有代码都被忽略。

        头文件应该含有保护符,即使这些头文件不会被其他头文件所包含。


使用自定义头文件

#include指示接受一下两种形式:

#include <standard_header>

#include “my.h”

        如果头文件名括在尖括号里,认为该头文件是标准头文件,编译器会在预定义的位置查找该头文件,如果头文件名括在引号里,认为它是非系统头文件,查找通常开始于源文件所在的路径。

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有