美文网首页
【C++】C++学习笔记之一:C++头文件

【C++】C++学习笔记之一:C++头文件

作者: Angeladoudou | 来源:发表于2016-10-08 23:21 被阅读0次

C++中头文件(通常以.h或.hpp为扩展名)和源文件(通常以.cpp,.cxx或.cc等为扩展名)是组成C++项目的主要组成部分。

1. 使用头文件的原因和好处

之所以在 C++ 中要使用头文件,有两个原因:

其一,是分离代码的声明与实现。

这主要源于C++这一面向对象语言的一大特点——封装性,把全局变量和全局函数的声明和类的定义保存在头文件中,而类的成员函数及全局函数的具体实现代码则写在源文件中。通过使用这种方式保证代码的隐私性。也就是说,使用类的人不用知道类的具体实现,只要知道如何使用就可以。

其二,是减小引用其他类,全局变量及全局函数的声明的代码体量。

C++ 程序的编译过程中,同一个项目可能有多个源文件(.cpp),而这些源文件是分别单独编译的。也就是说,在编译其中一个文件时,编译器并不知道其它文件中定义的内容。所以在使用其他源文件中内容的时候,要事先声明。把这些声明写在头文件,用时只需要include头文件,而不是include整个源文件(包括类的具体实现代码),这将减少编译器的工作量和代码的体量。

2. 引用头文件的方式

头文件的引用方式有两种:

#include <系统文件>
#include "自定义头文件"

其中头文件可以写.h扩展名,或者不写扩展名均可。

如下写法都可以:

#include <iostream>

#include <iostream.h>

3. 头文件的布局

一般编写头文件,需要有以下部分组成:

防卫式头尾

由于编译器在处理include头文件时,是将整个头文件的内容复制一份嵌入引用它的源文件中进行编译,所以可能会出现嵌套引用同一个文件的情况,多次引用同一个头文件会产生重复定义的编译错误。为避免这种错误,规范的头文件的写法是在头文件的开头和结尾加上防卫式头尾,其形式如下:


#ifndef __DATE_CLASS_H__

#define  __DATE_CLASS_H__

……

#endif //__DATE_CLASS_H__

前置声明

有时候类声明前需要事先声明全局变量全局函数,会把这些声明写在类声明前。

类声明

就是在class <类名> {。。。};中定义的类的成员变量及成员函数的声明,全部内容都写在头文件里。

类定义

标准的写法是把类定义的内容放在源文件(.cpp)中,但是开源项目盛行的今天,也有些开源项目为了方便程序员使用,将所有代码都写在头文件中,可以直接以include头文件的方式使用,减少了编译环境不同造成的额外编译调试的工作。这中间的取舍还要由程序员根据项目内容自己权衡把握。

clipboard.png

相关文章

网友评论

      本文标题:【C++】C++学习笔记之一:C++头文件

      本文链接:https://www.haomeiwen.com/subject/jtlpyttx.html