頭文件
以上我們所寫的所有的程序代碼全都是在同一個源文件中,那么若我們的項目非常龐大,或者我們的程序非常復雜,那么我們的程序還是只寫在同一個源文件中么?答案是否定的,而是把一些函數(shù)和類等寫在頭文件中,當我們用到他們的時候,我們就#include他們這樣豈不是很方便么。
這里我們就介紹頭文件的概念。頭文件和cpp文件不同,它的文件后綴是.h
你是不是想到了<stdio.h><stdlib.h>等等,沒錯他們都是頭文件。那么問什么叫他們頭文件呢?這里本人的理解為,無論你在哪個文件中引用了頭文件里面的內容,你都要先把頭文件加載進來,也就是一般吧#include放在最前面,所以有點事文件頭的感覺。
廢話不多說,我們來看個例子
#include<iostream>
using namespace std;
void foo(){
cout << "hello world!"<<endl;
}
int main(){
foo();
}
這里我們聲明并定義了一個foo函數(shù),然后在main函數(shù)中調用了它,那么按照我們剛剛講的,能不能把foo函數(shù)寫在另一個頭文件當中呢,我們來試試。
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函數(shù)寫在了叫foo.h 的頭文件中,然后我們在main.cpp源文件中加載了這個頭文件,#include "foo.h" 然后我們就可以引用里面的函數(shù)foo()了,是不是很簡單呢?看到這里相信你對頭文件有了一定的理解。
那么我們來看一些標準庫函數(shù)。
標準庫函數(shù)
什么叫做標準庫函數(shù)呢?也就是c++給出的標準函數(shù),然后把它們統(tǒng)一的放到了一些頭文件當中,構成了一個函數(shù)庫,這么說是不是很好理解呢。
下面舉幾個例子。
與數(shù)學相關的函數(shù)都封裝在了叫<math>、<math.h>、<cmath>的頭文件當中,至于他們的區(qū)別,這里不做研究。所以你可以這么寫
#######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頭文件中的函數(shù)
}

除了與數(shù)學相關的標準庫函數(shù),c++常用的還有字符串處理相關的標準庫
#######include<string>
#######include<string.h>
#######include<cstring>
關于三者的聯(lián)系與區(qū)別

#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>當中。
講到這里,相信大家對頭文件和標準庫函數(shù),標準函數(shù)庫等概念有一定的理解了。下一節(jié)我們將介紹C++的一個重要的知識點類的概念。