zoukankan      html  css  js  c++  java
  • 类型转换conversion

    算术转换(arithmetic conversion)

      整型提升(integral promotion)

    指针转换

    转换为bool类型

    转换与枚举类型

    转换为const对象

    显式转换

    satic_cast, dynamic_cast, const_cast 和 reinterpreter_cast

     

    static_cast:

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

    当需要将一个较大的算术类型赋值给较小的类型时,使用强制类型转换非常有用.

    dynamic_cast:

    e.g.: 假定Base是至少带一个虚函数的类,并且Derived类派生于Base类. 如果有一个名为 basePtr的指向Base的指针,就可以像这样在运行时将它强制转换为指向Derived的指针:

    if (Derived *derivedPtr = dynamic_cast<Derived * > (basePtr)

    {

    // use Derived object to which derivedPtr points

    }

    else{

    // use the Base object to which basePtr points

    }

    在运行时,如果basePtr实际指向Derived对象,则转换成功,并且derivedPtr将被初始化为指向basePtr所指的Drived对象;否则,转换的结果是0,意味着将derivedPtr置为0,并且if中的条件失败.

    const_cast:

    用以添加或删除const特性,用const_cast符来执行其他任何类型转换,都会引起编译错误.

    e.g.:

    const char *pc_str;

    char *pc = string_copy( const_cast<char*> (pc_str));

    reinterpreter_cast:

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

     

    旧式强制类型转换:

    type (expr); //Function-style cast notation

    (type) expr; // C-language-style cast notation.

     

  • 相关阅读:
    apply 无循环拼接数组
    匿名函数自调的三种方法
    移动元素时,translate要比margin好
    Tesseract库原理分析
    [转]基于OCR的图片字符识别可行性研究
    [转]C&C++图形图像处理开源库
    [转]OCR识别的开源分析
    [转]众多OCR软件
    [转]常用OCR软件介绍
    [转]浅谈OCR之Tesseract
  • 原文地址:https://www.cnblogs.com/wucg/p/1860046.html
Copyright © 2011-2022 走看看