c++關鍵字---大集合

本編文章主要是將作者在學習c++中遇到的關鍵字進行了總結,作者對比較陌生的關鍵字進行了解釋
  1. alignas 設置類和struct的字節對齊方式 默認取值爲:0 1 2 4 6 8
  2. alignof 區分sizeof(),alignof得到字節對齊的字節數
  3. ISO646標準支持的運算符:
    在這裏插入圖片描述
  4. asm 允許在c/c++的程序中直接插入彙編指令,並且可以插在任何位置
  5. assert 運行時斷言,assert的作用是先計算表達式expression,如果其值爲假(即爲0),那麼它先向 stderr打印一條錯誤的信息,然後通過調用abort來中止運行
  6. auto
  7. bool
  8. break
  9. case 和switch一起使用
  10. catch 和try一起使用,表示異常
  11. char 在linux平臺下等價於 unsigned char 在window平臺下等價於signed char
  12. char16_t char32_t unicode編碼
  13. class 類
  14. concept
  15. const 不變性
  16. constexpr 是“常量表達式”,在編譯期可求值的表達式。最基礎的常量表達式就是字面值或全局變量/函數的地址或sizeof等關鍵字。constexpr所修飾的變量一定是編譯期可求值的,所修飾的函數在所有參數是constexpr是,一定會返回constexpr。還可以修飾類的構造函數,但是,constexpr構造函數必須有一個空的函數體,即所有成員變量的初始化都放到初始化函數列表中。
  17. const_cast 用來修改類型的const或volatile,使用該運算方法可以返回一個指向非常量的指針(或引用)指向b1,就可以通過該指針(或引用)對它的數據成員任意改變。
    用法:
       const_cast<type_id> (expression)
       該運算符用來修改類型的const或volatile屬性。除了const 或volatile修飾之外, type_id和expression的類型是一樣的。
       一、常量指針被轉化成非常量的指針,並且仍然指向原來的對象;
       二、常量引用被轉換成非常量的引用,並且仍然指向原來的對象;
       三、const_cast一般用於修改底指針。如const char *p形式。
  18. continue
  19. decltype
    用法:
    返回值 decltype(表達式)
    返回值的類型是表達式參數的類型
    1. 如果這個表達式是函數,decltype給出的類型爲函數返回值的類型
    2. 如果表達式是一個左值類型,那麼decltype給出的類型爲表達式左值引用類型
    3. decltype不會執行表達式而auto會執行表達式
    4. 跟蹤返回類型
      函數的返回值類型一般是放在函數名的前面,但是c++11可以將函數的返回值類型放在函數聲明的後面,同時需要auto替代返回類型
      eg:
      template<class U, class V>
      auto Multiply(U u, V v) -> decltype(u*v)
      {
         return u*v;
      }
  20. default
  21. delete
  22. do
  23. double
  24. dynamic_cast
    將一個基類對象指針(或引用)轉換到繼承類指針,dynamic_cast會根據基類指針是否真正指向繼承類指針來做相應處理
    用法:
       dynamic_cast (expression)
       該運算符把expression轉換成type_id類型的對象,type_id必須是類的指針、類的引用或者void*
       如果 type-id 是類指針類型,那麼expression也必須是一個指針,如果type-id 是一個引用,那麼 expression 也必須是一個引用。
  25. else
  26. enum
    1. 普通用法:
      enum Day {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
    2. 強枚舉類型(使用enum class語法來聲明):
      enum class enumeration{
         value1,
         value2,
         value3 = 100,
         value4
      };
      另外枚舉類型所使用的類型爲默認爲int類型,也可指定爲其他類型:
      enum class enumeration:short{
         value1,
         value2
      };
  27. explicit 可以抑制內置類型的強制轉換,因此在類的構造函數中,應該儘可能地使用關鍵字explicit,防止不必要地隱式轉換
  28. export
  29. extern 用在變量或者函數的聲明前,用來說明“此變量/函數是在別處定義的,要在此處引用”
  30. false
  31. float
  32. for
  33. friend
  34. goto
  35. if
  36. Inline 放在函數定義的前面,使函數成爲內聯函數,建議編譯器直接調用函數體來替代函數調用
  37. int
  38. Long
  39. mutable
  40. namespace 命名空間
  41. new
  42. noexcept 告訴編譯器,函數中不會發生異常,如果在運行是,noexcept函數向外拋出了異常(如果函數內部捕捉了異常並完成處理,這種情況不算是拋出異常),程序會直接中止,調用std::terminate()函數,該函數內部會調用std::abort()中止程序
  43. nullptr 空指針 在c++11中是一個類型
  44. operator 重載
  45. private
  46. protected
  47. public
  48. register 告訴編譯器將變量放到寄存器中
  49. reinterpret_cast 強制類型轉換符
    語法:
      reinterpret_cast (expression)
      Type-id必須是一個指針、引用、算術類型、函數指針或者成員指針。它可以把一個指針轉換成一個整數,也可以把一個整數轉換成指針。
    用法:
      該操作符修改了操作數類型,但僅僅是重新解釋了給出的對象的比特模型而沒有進行二進制轉換
  50. requires
  51. return
  52. short
  53. signed
  54. sizeof 查詢對象或類型的大小
  55. static static修飾普通變量函數
    static放在類中進行修飾屬性和方法
  56. static_assert 編譯期間實現斷言,是靜態斷言。不會生成目標代碼,不會造成任何的性能損失
    語法:
      static_assert(常量表達式,要提示的字符串);
      如果第一個參數常量的表達式是false,會產生一條編譯錯誤,錯誤的位置就是static_assert語句所在的行,第二個參數就是錯誤提示字符串。然後通過調用abort()來中止運行
  57. static_cast 功能是把一個表達式轉換爲某種類型,但是運行時類型檢查來保證轉化的安全性
    語法:
      static_cast<type_id>(expression)
      把expression類型轉換爲type_id類型
  58. struct
  59. switch
  60. template
  61. this
  62. thread_local
  63. Throw 和try、catch一起用
  64. true
  65. try
  66. typedef 起別名
  67. typeid
  68. typename
  69. union
  70. unsigned
  71. using 在c++11中可以使用using來替代typedef
  72. virtual 虛函數
  73. void
  74. volatile 作用就是防止編譯器對代碼進行優化
  75. wchar_t 在windows編程下用的多
  76. while
發佈了22 篇原創文章 · 獲贊 13 · 訪問量 4853
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章