zoukankan      html  css  js  c++  java
  • 《C++ Primer》笔记强制类型转换

    1.C++的新式强制类型转换,mark一下。

    显式转换也称为强制类型转换(cast),包括以下列名字命名的强制类型转换操

    作符:static_cast、dynamic_cast、const_cast 和 reinterpret_cast。 

     ival *= static_cast<int>(dval); // converts dval to int
    

    命名的强制类型转换符号的一般形式如下:

         cast-name<type>(expression);
    

    其中 cast-name 为 static_cast、dynamic_cast、const_cast 和 reinterpret_cast 之一,type 为转换的目标类型,而 expression 则是被强制 转换的值。强制转换的类型指定了在 expression 上执行某种特定类型的转换。 

    1.1  dynamic_cast

    dynamic_cast 支持运行时识别指针或引用所指向的对象。 

    1.2  const_cast

    const_cast ,顾名思义,将转换掉表达式的 const 性质。 

    1.3  static_cast

    编译器隐式执行的任何类型转换都可以由 static_cast 显式完成: 

    1.4  reinterpret_cast

    reinterpret_cast 通常为操作数的位模式提供较低层次的重新解释。 

    1.5  旧式强制类型转换 

    char *pc = (char*) ip; 

    效果与使用 reinterpret_cast 符号相同,但这种强制转换的可视性比较 差,难以跟踪错误的转换。 

    虽然标准 C++ 仍然支持旧式强制转换符号,但是我们 建议,只有在 C 语言或标准 C++ 之前的编译器上编写 代码时,才使用这种语法。 

  • 相关阅读:
    2016年3月iOS面试总结
    iOS常用公共方法
    让你的App说出多国语言——iOS开发之本地化(国际化)
    开发中遇到的坑
    Git简明教程
    iOS-打包成ipa的4种方法
    iOS-最全的App上架教程
    android 开源项目
    android 文件缓存工具类
    android 聊天通讯源码
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/2837557.html
Copyright © 2011-2022 走看看