0%

类型转换的三个层次

2020年4月28日 上午11:07

这篇文章涉及到《C++ primer》中分散的多节内容:

  • P32 类型转换
    • 含有无符号数类型的表达式
  • P141 类型转换
    • 算数转换
    • 隐式类型转换
    • 显示转换
  • P263 隐式的类类型转换
  • P514 重载、类型转换与运算符
    • 类型转换运算符
    • 避免有二义性的类型转换

内存层次:

  • 算数类型转换主要涉及到内存,这么做的原因我认为和内存对齐有关,当我们做了统一的整型提升、转换成浮点类型,统一的类型可以更方便的做到内存对齐
  • 这里面最坑的是无符号类型的转换,分两种类型:具体内容在P32 + P141

语法层次:

  • 我认为关于指针的转换都是语法层次的,指针指向是地址,地址就是地址,只不过在语法层次我们有区分了指向不同类型的指针
  • 转换成常量

包装层次:

  • 类类型的转换
    • 构造方法的自动转换,explicit
    • 类型转换运算符的自动转换,explicit