類型是全部程序的基礎。類型告訴咱們數據表明什麼意思以及能夠對數據執行哪些操做。編程
C++中對類型的支持是很是普遍的:語言自身定義了一組基礎類型和修改已有類型的方法,還提供了一組特徵用於自定義類型。函數
2.1基本內置類型spa
wchar_t類型用於擴展字符,好比漢字和日語,這些字符集中的一些字符不能用單個char表示。對象
整型:在大多數機器上,使用int類型進行整型計算不易出錯。內存
浮點型:使用double類型基本上不會有錯。字符串
2.2字面值常量編譯
只有內置類型存在字面值。基礎
定義長整型時,應使用大寫字母L,小寫字母l容易和1混淆。變量
兩個相鄰的僅由空格、製表符或換行符分開的字符串字面值,可鏈接成一個新的字符串字面值。這使得多行書寫字符串字面值變得簡單。擴展
在一行的末尾加一個反斜線符號可將此行和下一行當作同一行處理。
2.3變量
C++兩種表達式:左值(可出如今賦值語句左邊和右邊)、右值(只出如今賦值的右邊)
對象是內存中具備類型的區域。
標識符不能包含兩個連續的下劃線,也不能如下劃線開頭後面緊跟一個大寫字母。
在C++中初始化和賦值是兩種不一樣的操做。
建議每一個內置類型的對象都要初始化。
只有當extern聲明位於函數外部時,在能夠含有初始化式。
任何在多個文件中使用的變量都須要有與定義分離的聲明。在這種狀況下,一個文件包含變量的定義,使用該變量的其餘文件則包含該變量的聲明。
一般把一個對象定義在它首次使用的地方是一個很好的方法。
2.4const限定符
非const變量默認爲extern。要使const變量可以在其餘文件中訪問,必須顯式的指定它爲extern。
2.5引用
const引用是指向const對象的引用。
將普通引用綁定到const對象是不合法的。
const引用能夠初始化爲不一樣類型的對象或者初始化爲初值。
2.6 typedef名字
隱藏特定類型實現,強調使用類型的目的
簡化複雜的類型定義,使其更易理解
容許一種類型用於多個目的,同時使得每次使用該類型的目的明確
2.7枚舉
枚舉類型的對象的初始化或賦值,只能經過其枚舉成員或者同一枚舉類型的其餘對象類進行。
2.8類類型
編程新手常常會忘記類定義後面的分號,這是個很廣泛的錯誤。
2.9編寫本身的頭文件
頭文件通常包含類的定義、extern變量的聲明和函數的聲明。
由於有文件包含在多個源文件中,因此不該該含有變量或函數的定義。
頭文件能夠定義類、值在編譯時就已知道的const對象和inline函數。
咱們必須保證屢次包含同一文件不會引發該頭文件定義的類和對象被屢次定義。(使用預處理器定義頭文件保護符)
爲了不名字衝突,預處理器變量常常用全大寫字母表示。