头文件
以上我们所写的所有的程序代码全都是在同一个源文件中,那么若我们的项目非常庞大,或者我们的程序非常复杂,那么我们的程序还是只写在同一个源文件中么?答案是否定的,而是把一些函数和类等写在头文件中,当我们用到他们的时候,我们就#include他们这样岂不是很方便么。
这里我们就介绍头文件的概念。头文件和cpp文件不同,它的文件后缀是.h
你是不是想到了<stdio.h><stdlib.h>等等,没错他们都是头文件。那么问什么叫他们头文件呢?这里本人的理解为,无论你在哪个文件中引用了头文件里面的内容,你都要先把头文件加载进来,也就是一般吧#include放在最前面,所以有点事文件头的感觉。
废话不多说,我们来看个例子
#include<iostream>
using namespace std;
void foo(){
cout << "hello world!"<<endl;
}
int main(){
foo();
}
这里我们声明并定义了一个foo函数,然后在main函数中调用了它,那么按照我们刚刚讲的,能不能把foo函数写在另一个头文件当中呢,我们来试试。
foo.h
#include<iostream>
using namespace std;
void foo(){
cout << "hello world!" << endl;
}
main.cpp
#include<iostream>
#include"foo.h"
using namespace std;
int main(){
foo();
}
我们把foo函数写在了叫foo.h 的头文件中,然后我们在main.cpp源文件中加载了这个头文件,#include "foo.h" 然后我们就可以引用里面的函数foo()了,是不是很简单呢?看到这里相信你对头文件有了一定的理解。
那么我们来看一些标准库函数。
标准库函数
什么叫做标准库函数呢?也就是c++给出的标准函数,然后把它们统一的放到了一些头文件当中,构成了一个函数库,这么说是不是很好理解呢。
下面举几个例子。
与数学相关的函数都封装在了叫<math>、<math.h>、<cmath>的头文件当中,至于他们的区别,这里不做研究。所以你可以这么写
#######include<math>或者
#######include<math.h>或者
#######include<cmath>
#include<iostream>
#include<cmath>//引入头文件
using namespace std;
int main(){
int n = -5;
cout << n << "的绝对值是: " << abs(n) << endl;//abs()是cmath头文件中的函数
}
除了与数学相关的标准库函数,c++常用的还有字符串处理相关的标准库
#######include<string>
#######include<string.h>
#######include<cstring>
关于三者的联系与区别
#include<iostream>
#include<string>
using namespace std;
int main(){
string str1 = "hello world";
cout << str1 << endl;
cout << str1.substr(0,5);
}
对了其实我们每次使用的标准输入输出流cin>> cou<< 其实也定义在头文件#include<iostream>当中。
讲到这里,相信大家对头文件和标准库函数,标准函数库等概念有一定的理解了。下一节我们将介绍C++的一个重要的知识点类的概念。