• C++ 各类型转换及关键字


      volatile关键字

      表示该变量易变,每次在访问该关键字修饰的变量时都要读内存,不对其进行优化。

      mutable关键字

      类的常成员函数在语义上是不允许修改类的成员变量的,但是有时候可能根据代码的需要并不是这么绝对。那么就可以使用mutable声明一个类的成员变量,它告诉编译器类的常成员函数可以修改这个变量。

      explicit关键字

      修饰构造函数,通常用作 构造函数静止隐式转换。

      四种类型转换

      1. const_cast

      去掉类型的const或volatile属性。

    const int a=10;
    int &b=const_case<int&>(a);

      2. static_cast

      静态类型转换,用于类型间强制转换。用于:

      (1)基类和子类转换,子类指针转父类是安全的,父类转子类不安全。

      (2)基本数据类型转换。

      (3)空指针转换成目标类型指针。

      (4)转换为void类型

    int n=1;
    double  d=static_cast<double>(n);
    int *pn=&n;
    double *d=static_cast<double*>(&n);
    void *p = static_case<void*>(pn);

      

      3.dynamic_cast

      动态类型转换,运行时类型安全检查(转换失败返回NULL)

      1.安全基类和子类转换,基类转子类会失败。

      2.必须有虚函数。

      3.相同基类不同子类间转换,结果为NULL。

       4.reinterpret_cast

      重新解释类型,没有进行二进制转换。

      一般用在函数指针类型之间转换。

  • 相关阅读:
    [软件工程基础]第 1 次个人作业
    [软件工程基础]个人项目 数独
    [2017BUAA软件工程]第0次个人作业
    [2017BUAA软工]第零次作业
    NoSQL-流式数据处理与Spark
    C、JAVA存储管理不同点
    数据库之一窥数据库系统
    Java单元测试-覆盖率分析报告自动生成
    Java单元测试-快速上手Junit(进阶)
    Java单元测试-快速上手Junit
  • 原文地址:https://www.cnblogs.com/wshr007/p/11505658.html
Copyright © 2020-2023  润新知