C++語言重要語法之頭文件和命名空間| 8月更文挑戰

頭文件和命名空間

C++頭文件

C++語言中使用頭文件保存程序中用到的聲明,例如,函數聲明,常量定義等。
代碼示例:ios

1 #include <iostream> 
2 #include <string> 
3 using namespace std; 
4 int main(){ 
5     string name; 
6     cout<<"輸入你的名字"<<endl; 
7     cin>>name; 
8     cout<<"Hello "<<name<<endl; 
9     return 0; 
}
複製代碼

上述程序第1行使用# include指令包含了頭文件iostreamo。iostream是c++的標準輸入輸出流。
注意點:c++

  1. 當在程序中使用cin或cout時,必須在程序的最前面包含這個流。若是還要使用其餘的內容,那麼須要包含其餘的頭文件。上述程序中用到了字符串,因此在第2行包含了頭文件字符串。
  2. 每條# include指令僅能夠包含一個頭文件,若是須要包含多個頭文件,則須要使用多條# include指令。
  3. 在c++中,頭文件再也不以「.h」結尾,例如,上述程序中使用的頭文件是iostream和字符串。以」.h「結尾的頭文件是C語言中經常使用的頭文件。

經常使用的頭文件有如下這些:程序員

  1. 標準輸入輸出流:;
  2. 標準文件流(文件處理函數):;
  3. 標準字符串處理函數(包含經常使用的字符串處理函數):;
  4. 標準數學函數(包含常見數學公式):。

除了可使用系統提供的頭文件外,咱們還能夠定義本身的頭文件,並在程序中使用# include指令將其包含進來。 默認規則(使用C++語言的程序員都遵循的規則):
一般,使用尖括號括住系統提供的頭文件,使用雙引號括住咱們本身定義的頭文件。markdown

尖括號頭文件編譯尋找路徑

當使用尖括號時,c++編譯器將首先在c++系統設定的目錄中尋找要包含的文件,若是沒有找的到,再到指令中指定的目錄中去查找。函數

雙引號頭文件編譯尋找路徑

採用雙引號時,c++編譯器在用戶當前目錄下或指令中指定的目錄下尋找要包含的文件,例如,要包含ridingroad用戶家目錄下的頭文件custom.h,相應的語句以下:spa

#include "/home/ridingroad/custom.h"
複製代碼

命名空間namespace

有Python基礎的話,理解C++中的命名空間就像和Python的包的概念同樣。爲了不不一樣包裏面的命名衝突。一個大型的程序一般由不一樣的模塊構成,各個模塊有多是由不一樣的程序員開發的。不一樣模塊中出現的標識符之間有可能發生重名現象,這就會引起錯誤。C++中爲了不名字衝突,特別引入了「命名空間」的定義,即namespace。目的:命名空間的做用是爲了消除同衆引發的歧義。code

上面程序第3行"using namespace std;",表示使用命名空間std。按照Python的理解的話,就是導入std這個包,而且是相似於:orm

from std import *
複製代碼

一個大型的程序一般由不一樣的模塊構成,各個模塊有多是由不一樣的程序員開發的。不 同模塊中出現的標識符之間有可能發生重名現象,這就會引起錯誤。C中爲了不名字 (義衝究 特別引入了「命名空間」的定義,即namespace。命名空間的做用是爲了消除同衆 引發的歧義。ci

命名空間使用方法

方法1:開發

命名空間名::標識符名
複製代碼

例如:

stad::cin std::cout std::endl
複製代碼

using語句有兩種形式:

using 命名空間名::標識符;  相似於Python的 from xxx import yy
using namespace命名空間名; 相似於Python的 from xxx import *
複製代碼

前一種形式表示,能夠在本文件中直接使用該標識符; 後一種形式表示,能夠在本文件 中直接使用指定命名空間內的全部標識符。

相關文章
相關標籤/搜索