.cpp与.h文件的关系详解(预处理、编译、链接)

您所在的位置:网站首页 s=什么h .cpp与.h文件的关系详解(预处理、编译、链接)

.cpp与.h文件的关系详解(预处理、编译、链接)

2024-07-09 11:29| 来源: 网络整理| 查看: 265

目录

.h与.cpp的作用和关系

头文件(.h 或 .hpp)

源文件(.cpp)

逐步解释过程

1、预处理

2、编译

3、链接

在C++中,通常将代码分为头文件(.h 或 .hpp)和源文件(.cpp)两种类型。 首先介绍一下.h和.cpp文件的作用。

.h与.cpp的作用和关系 头文件(.h 或 .hpp) 声明:头文件通常包含类、函数或变量的声明。模板定义:类模板、函数模板的定义通常也会放在头文件中。宏定义:常量、宏定义以及内联函数的实现通常也会放在头文件中。接口定义:类的公共接口、成员变量声明等也属于头文件的范畴。防止重复包含:使用预处理指令 #ifndef、#define、#endif 来避免头文件的重复包含。

示例:

// example.h #ifndef EXAMPLE_H #define EXAMPLE_H class Example { public: Example(); // Constructor declaration void doSomething(); // Function declaration private: int data; // Member variable declaration }; #endif 源文件(.cpp) 实现:源文件包含类、函数或变量的实现部分。函数定义:函数成员的具体实现通常在源文件中。类成员函数实现:类的成员函数的实现也在源文件中。全局变量定义:全局变量的定义通常也在源文件中。

示例:

// example.cpp #include "example.h" Example::Example() { data = 0; } void Example::doSomething() { // Implementation of the doSomething function }

在实际开发中,头文件主要用于暴露接口和声明,而源文件用于实现具体的功能。通过这种分离,可以提高代码的可读性、可维护性,并且可以减少编译时间,因为只有源文件发生改变时才需要重新编译。

上述的头文件与源文件的作用在很多平台都能找到类似的答案。

但是我在学习过程中经常会疑惑一个问题: 头文件“a.h”声明了一系列数,“b.cpp”中实现了这些函数,那么如果我想在“c.cpp”中使用“a.h”中声明的这些在“b.cpp”中实现的函数,通常都是在“c.cpp”中使用#include“a.h”,那么c.cpp是怎样找到b.cpp中的实现呢?

逐步解释过程

假设有以下三个文件:

a.h (头文件,声明函数)

// a.h文件 #ifndef A_H #define A_H void myFunction(); #endif

b.cpp (源文件,实现函数)

// b.cpp文件 #include "a.h" #include void myFunction() { std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3