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

  • 相关阅读:
    Reverse Integer
    First Bad Version
    Heaters
    Number of Segments in a String
    RPI学习--环境搭建_串口连接
    关键字const
    main函数参数的使用
    Redis 简单使用 and 连接池(python)
    南宁AI项目
    Go part 1 初探
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/2837557.html
Copyright © 2011-2022 走看看