zoukankan      html  css  js  c++  java
  • 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

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

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

  • 相关阅读:
    第九章 类的定义属性和方法
    第八章 函数作用域
    第七章 函数基础
    第六章 控制流程
    Http请求
    Django学习之-带参数的路由应用
    Django学习之--Ajax
    第二章:Django项目实例
    第一章:Django简介
    pytest汇总
  • 原文地址:https://www.cnblogs.com/wshr007/p/11505658.html
Copyright © 2011-2022 走看看