• 《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++ 之前的编译器上编写 代码时,才使用这种语法。 

  • 相关阅读:
    JVisualVM远程监控
    周记 2014.11.22
    读取配置文件
    周记 2014.11.15
    MyBatis 逆向工程介绍
    PyTorch模型加载与保存的最佳实践
    ubuntu 服务器 php 环境简单搭建
    【重温广州读书会三青年自白,想念在深圳建会工人斗争中积极声援的他们!!】
    EventBus 3.0 的基本使用
    搭建Hexo博客
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/2837557.html
Copyright © 2020-2023  润新知