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
发布了38 篇原创文章 · 获赞 49 · 访问量 6948

猜你喜欢

转载自blog.csdn.net/Xiao_Jie123/article/details/104122259
今日推荐