头文件声明接口,源文件实现功能。头文件包含类、函数、变量声明及宏定义,供多文件共享;源文件编写具体逻辑,实现声明内容。通过分离声明与实现,避免重复代码,加快编译速度,支持模块化开发,提升代码可读性与维护性。

在C++编程中,头文件(.h 或 .hpp)和源文件(.cpp)分工明确,合理使用能提高代码的可读性、可维护性和编译效率。
头文件的作用:声明接口
头文件主要用于存放函数、类、变量、宏等的声明,相当于一个“说明书”,告诉其他源文件有哪些可用的功能。
- 包含类的定义(class declaration),包括成员函数和成员变量的声明
- 函数原型声明,让其他文件知道该函数的存在和调用方式
- 全局变量的extern声明,避免重复定义
- 常量定义(如const或constexpr)和宏定义(#define)
- 模板和内联函数通常也写在头文件中,因为它们需要在编译时可见
多个源文件通过 #include "xxx.h" 来共享这些声明,实现模块间的通信。
源文件的作用:实现功能
源文件是具体逻辑的实现地,包含函数体、类成员函数的具体代码。
立即学习“C++免费学习笔记(深入)”;
- 实现头文件中声明的函数和类方法
- 定义全局变量(不加extern)
- 包含必要的头文件以获取依赖声明
- 编写主程序逻辑(如main函数)
编译器会单独编译每个源文件生成目标文件(.o 或 .obj),最后由链接器将它们组合成可执行程序。
为什么这样分离?
这种设计带来了几个关键好处:
- 避免重复代码:多个cpp文件可以包含同一个头文件,统一接口
- 加快编译速度:修改一个源文件只需重新编译它本身,而非整个项目
- 支持模块化开发:不同模块各自提供头文件和实现,便于团队协作
- 防止重复定义:通过头文件守卫(#ifndef / #define / #endif)或 #pragma once 防止内容被多次引入
基本上就这些。头文件对外暴露“能做什么”,源文件负责“怎么做”,两者配合实现高内聚、低耦合的代码结构。











