1.const關鍵字
用const定義常量,一旦定義後不能修改,所以定義時必須初始化。
const對象默認爲文件的局部變量,不能被其他文件訪問。如果其他文件需要訪問,則要用extern定義:extern const int g_iNumber
2.引用
引用是一種複合類型,通過在變量名前加&符號來定義。
引用是它引用的對象的別名。
必須在定義的時候就初始化,且不能將引用綁定到另一個對象。
const引用,是指向const對象的引用。const引用頁可以指向非const對象,但非const引用不能執行const對象。
const引用可以初始化爲不同類型的對象,比如
double dval = 3.14;
const int &r = dval;
編譯器會把這些代碼轉換爲
int temp = dval;
const int &r = temp;
3.typedef關鍵字
typedef double wages;
wages hourly, weekly; //double hourly, weekly;
typedef通常有三個目的:
爲了隱藏特定類型的實現,強調使用類型的目的
簡化複雜的類型定義,使其更易理解
允許一種類型用於多個目的,同時使得每次使用該類型的目的明確
4.枚舉
enum關鍵字定義枚舉類型。
enum open_modes { input, output, append };
默認情況第一個成員賦值0,依次遞增
也可以定義枚舉類型時指定值,enum open_modes {input = 1, output = 3; append = 3 }; // 枚舉成員值可以是不唯一的
* 不能改變枚舉成員的值,枚舉成員本身是一個常量表達式。
5.class and struct
類類型和結構體類型只有一個區別:struct默認成員是public的,而class是private的。
6.設計自己的頭文件
頭文件爲相關聲明提供了一個集中存放的位置。頭文件一般包含類的定義、extern變量的聲明和函數的聲明
頭文件用於聲明而不是用於定義。但有三個例外:頭文件可以定義類,值在編譯時就已知的const對象和inline函數
如果const變量不是用常量表達式初始化,那麼它不應該在頭文件定義,而應該在源文件中定義。若需要被其他文件共享,則用extern聲明定義