1. 程式人生 > >c++ 記憶體模型 名稱空間

c++ 記憶體模型 名稱空間

1. auto用於自動型別推斷

2. register不再是暫存器變數,而是顯示地指出變數是自動的

3. 全域性變數的連結性預設為外部的,使用static限制為內部連結。使用const定義的全域性變數預設為外部連結的。在函式使用const修飾的變數,在函式結束時不會釋放掉變數中的值,再次呼叫該函式時,該變數的值為上次函式結束前的值。

4. 將變數宣告為volatile,編譯器不進行優化。

5. mutable用來指示結構變數即使為const,用mutable修飾的結構體成員仍然可以被修改。

6. 函式的連結性預設為外部,可以使用static限定為內部連結性。單定義規則適用於非行內函數。行內函數可以有多個定義,但是c++要求所有的行內函數定義必須相同。

7. 函式查詢過程:先查詢程式檔案,再找庫。如果定義了一個和庫函式同名的函式,則庫函式會被定義的函式覆蓋。

8. c++語言連結性

9. 定位new運算子使用時需要包含標頭檔案<new>,定位new函式不可替換,但可以過載。

10. 定位new運算子如果定位時定位到靜態記憶體去,例如陣列,則不能使用delete釋放該記憶體。delete只能釋放動態記憶體,如堆區的記憶體,靜態記憶體不屬於delete管轄的範圍。

11. 名稱空間:宣告區域、潛在作用域和作用域

12. namespace的含義

13. using編譯指令

14.using宣告指令

15. using編譯和宣告的區別

16. 未命名的名稱空間的連結性為內部的靜態變數的替代品。

17. 名稱空間及其前途

18. 名稱空間總結