zoukankan      html  css  js  c++  java
  • Const 和 Static

     中的两个功能:

    这两个关键字可以一起使用,当一起使用时,它们的先后顺序是没有限制的,谁在前面都一样,const是指常量,static则表示静态变量,
    它们一起使用时则表示一个静态常量.当你声明一个变量并初始化后,你不想在后面的程序中对该变量进行修改的话,你就可以用const
    修饰符来修饰它,它告诉编译器这是一个常量,如果你对常量作了修改,编译的时候就会通不过,而静态变量则是在你声明之后,这个变量
    就一直常驻内存,直到程序结束它才会被销毁,例如你在一个自定义函数中定义了一个静态变量,
    当这个函数被调用结束,它里的静态变量依然存在,当第二次调用该函数时,这个变量并不会重新被分配内存,它的值则是上一次调用后它的值.
    C++对static关键字的重用
    主要指静态数据成员/成员函数。
    表示属于一个类而不是属于此类的任何特定对象的变量和函数. 
    这是与普通成员函数的最大区别, 也是其应用所在, 比如在对某一个类的对象进行计数时,
    计数生成多少个类的实例, 就可以用到静态数据成员. 在这里面, static既不是限定作用域的,
    也不是扩展生存期的作用, 而是指示变量/函数在此类中的唯一性.
    这也是”属于一个类而不是属于此类的任何特定对象的变量和函数”的含义. 因为它是对整个类来说是唯一的,
    因此不可能属于某一个实例对象的. (针对静态数据成员而言, 成员函数不管是否是static,
    在内存中只有一个副本, 普通成员函数调用时, 需要传入this指针, static成员函数调用时, 没有this指针. )

    static数据成员的初始化:

    (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。

    (2) 初始化时不加该成员的访问权限控制符private,public等。

    (3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。

    (4) 静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。


    Static成员函数

    静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。

    静态成员函数仅能访问静态的数据成员,不能访问非静态的数据成员,也不能访问非静态的成员函数,这是由于静态的成员函数没有this指针

  • 相关阅读:
    eclipse运行maven项目报错:找不到ContextLoaderListener、IntrospectorCleanupListener
    音乐播放器项目计划进度安排
    音乐播放器计划书
    抽奖程序
    显示默认目录中的所有文件名
    单字符和多字符的文件输出
    求和
    第二周 登录小界面
    第一周随笔
    小组图书管理系统项目进度表
  • 原文地址:https://www.cnblogs.com/hualimengyu/p/3739434.html
Copyright © 2011-2022 走看看