C++头文件怎么写(简易版)

一、头文件内容:

1.头文件内容中应该只放变量和函数声明,而不能放它们的定义。因为一个头文件实际上会被引入到多个不同的.cpp文件中,并且它们都会被编译。如果放了定义,那么也会在多个文件中出现一个对于一个变量或函数的定义,纵然这些定义相同,但是对于编译器来说,这样做是不合法的。比如头文件可以写:extern int a;和void f()的声明,但不能放int a;和void f(){}的定义。

2.头文件可以写const对象和static对象的定义。因为全局的const和static对象默认是没有extern的声明的,所以只在当前文件中有效,而且这些.cpp问价的该对象都是从一个头文件中 包含进去的。

二、头文件(.h)与源文件(.cpp)链接原理:

在用visual studio 2022学数据结构时,我发现头文件的内容(.h文件)和源文件内容(.cpp文件)是内容是一样的,都是C++的源代码。但是头文件不用被编译,我们把所有的函数声明全部放在一个头文件中,当某一个.cpp源文件需要它们时,它们就可以通过"#include"包含进这个.cpp文件中,从而把他们的内容合并到.cpp文件中,当.cpp文件被编译的时候,这些被包含的.h文件的作用便发挥了。

举个例子,假设所有函数只有两个,f1和f2,那么我们把它们的定义放在math.cpp里:

/* math.cpp */
double f1()
{
    //do something here....
    return;
}
double f2(double a)
{
    //do something here...
    return a * a;
}
/* end of math.cpp */

并把“这些”函数的声明放在一个头文件math.h中:
/* **math.h** */
double f1();
double f2(double);
/* end of math.h */

在另一个文件main.cpp中,我要调用这两个函数,那么就只需要把头文件包含进来:
/* main.cpp */
#include "math.h"//include的作用是把它后面所写的那个文件的内容,完完整整地、一字不改地包含到当前文件中来。
main()
{
    int number1 = f1();
    int number2 = f2(number1);
}
/* end of main.cpp */

这 样,便是一个完整的程序了。需要注意的是,.h文件要在编译器找得到的地方(比如跟main.cpp在一个目录下)。 main.cpp和math.cpp都可以分别通过编译,生成main.o和math.o,然后再把这两个目标文件进行链接,程序就可以运行了。

最后,本人大三,才开始好好编程,心累。大一大二的学妹学弟要是能看到这,请务必一定要好好学习,好好敲代码,老师教的不懂,请上b站,做一个务实的码农!!!

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值