C++——头文件

130 阅读2分钟

0. 头文件的原理与使用

  • 头文件是什么:

    • 头文件是以 .h.hpp (推荐 C++) 结尾的文本文件。
    • 主要包含函数声明、类声明、全局变量声明、宏定义、枚举和结构体声明等。
    • 允许在多个源文件中共享声明,实现代码复用和模块化编程。
  • 为什么要用头文件:

    • 避免重复代码: 将函数和变量的声明放在头文件中,多个源文件只需包含该头文件即可使用,无需重复编写声明。
    • 提高代码可读性和可维护性: 将接口 (声明) 和实现分离,使得代码结构更清晰,修改接口时只需修改头文件。
    • 支持模块化编程: 将程序划分为多个模块,每个模块有自己的头文件,便于组织和管理大型项目。
    • 支持编译分离: 允许将一个项目拆分成多个独立的编译单元,然后链接在一起,加快编译速度。
  • 如何使用头文件:

    • 使用 #include 预处理指令包含头文件。

    • 包含系统头文件: 使用尖括号 < >,例如 #include <iostream>。编译器会在系统头文件目录下搜索。

    • 包含自定义头文件: 使用双引号 "",例如 #include "myheader.h"。编译器会首先在当前源文件所在目录下搜索,如果找不到,则在系统头文件目录下搜索。

    • 头文件内容:

      • 声明而非定义: 通常在头文件中放置函数和变量的声明,而不是它们的定义。全局变量的定义通常放在一个 .cpp 文件中。
      • 类定义: 类定义通常放在头文件中。
      • 内联函数: 内联函数的定义可以放在头文件中。
      • 宏定义和常量: 常量可以使用 constconstexpr 定义,宏定义也可以放在头文件中。
    • 避免重复包含: 使用头文件保护符 (include guards) 来防止头文件被多次包含,导致编译错误。

      #ifndef MYHEADER_H
      #define MYHEADER_H
      
      // 头文件内容
      
      #endif // MYHEADER_H
      
    • 组织自定义头文件: 建议将相关的声明放在同一个头文件中,并根据模块或功能进行组织。

  • 现在流行用下面的方式:

    #pragma once