头文件的内容通常包括以下几类:函数声明(如int add(int a, int b);,只声明函数的接口,不包含实现);类声明(如class Student { ... };,定义类的成员变量和成员函数声明);常量定义(如const int MAX_SIZE = 100;);宏定义(如#define PI 3.1415926);模板声明(如template <typename T> T max(T a, T b);)。需要注意的是,头文件中通常不包含函数或类的实现代码(即函数体),因为如果多个源文件同时包含同一个头文件,会导致实现代码被重复编译,引发 “多重定义” 错误。函数和类的实现代码通常放在.cpp 源文件中,头文件只负责提供 “接口声明”,这种 “声明与实现分离” 的设计,是 C++ 模块化编程的核心思想。
接下来,我们详细讲解头文件的使用规则和注意事项:
第一,头文件的引入语法。C++ 提供两种引入头文件的方式:#include <头文件名>和#include "头文件名"。两者的核心区别在于头文件的查找路径:使用尖括号 <> 时,编译器会优先在系统指定的头文件目录(如 C++ 标准库目录、编译器安装目录下的 include 文件夹)中查找;使用双引号 "" 时,编译器会先在当前源文件所在的目录中查找,如果找不到再去系统目录中查找。因此,引入 C++ 标准库头文件(如<iostream>、<cstdio>、<algorithm>)时,使用尖括号 <>;引入自己编写的自定义头文件(如 myfunc.h)时,使用双引号 ""。例如: