• C++ const 和static的总结以及使用


    一  static的使用 (作用域和存储方式)

    1.作用域---------->隐藏

    静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用; 其它文件中可以定义相同名字的函数,不会发生冲突)

    int a = 10;

       void add()

    {

    static int a=0;        //对该函数进行隐藏,只作用于该函数内,这个函数只执行一次,下次就不会再给a 进行赋值操作

    printf("a = %d",a);

    }

    int main()

    {

    ` a++;

    add();

    printf("a = %d",a);

    }

    结果 : a=0     a=10;

    函数(static 里面不包含this指针)

    a.静态函数只能访问静态成员变量(不需要this指针)

    b.静态函数不能访问普通成员函数,反之成立(静态成员函数没有this指针)

    2. 存储方式-------------->共有的(它的值会被保存,下次调用仍保持上一次数值)

    a.局部变量 : 在该函数执行变量结束后,该变量不会被释放,继续保存

    b.全局变量 : 表示当变量在全局内都可以访问

    c.类成员变量 : 表示这个变量为全类所有的(所有对象都公用这个变量,它不是某一个对象的私有的)

    二   const的使用 (只具有读的工能)

    1. const 常量:定义时就初始化,以后不能更改。
    2. const 形参:func(const int a){};该形参在函数里不能改变
    3. const修饰类成员函数:该函数对成员变量只能进行只读操作
    4. 可以作为重载函数  void  func(Test  * const this(默认的)) const ---------=>void  func(const  Test * const this):这个函数只具有读的功能,不能对对其变量进行修改

        因为this指针为常量,不能变化,它和static成员函数类似,普通函数可以访问常成员函数,反之则不成立.常成员函数只能访问常成员变量

    三   不同点

    static : 为静态变量,只和类有关系,和对象无关,即使没有对象也可以调用静态函数和变量.

    数据类型 类名::静态数据成员名=值    int Test::a = 10;

    const : 初始化必须有构造函数初始化,不同对象const的数值不一样.

     

  • 相关阅读:
    Qt 3d
    yolov5 检测图片里面的对象
    QTreeWidget双击事件
    Qt QPainter QBrush 填充区域
    Qt QWidget保存为图片
    [原][减肥][名词解释]什么是GI
    [原][减肥]生酮减肥,喝防弹咖啡减肥的食谱
    [转][减肥]外源性酮症与内源性生酮
    fastadmin 单独设置导入权限【转载】
    [MySQL]多表关联查询技巧
  • 原文地址:https://www.cnblogs.com/liunx1109/p/9609072.html
Copyright © 2020-2023  润新知