首页 > 其他分享 >关键字static详解

关键字static详解

时间:2023-05-19 22:06:55浏览次数:27  
标签:变量 静态 作用域 成员 关键字 详解 static 修饰 函数

static是常见的函数和变量(c++中类)的修饰符关键字,他主要用来控制变量的生命周期、作用域和储存方式。

1、修饰局部变量

a.储存区由栈变为静态变量区。

b.生命周期由局部变为全局。

c.作用域不变。

注意:static修饰的变量只执行初始化一次。

2、修饰全局变量

a.变量的储存区域在全局数据区的静态常量区。

b.变量的作用域由当前程序变为整个文件。

c.变量的生命周期不变。

3、修饰函数

a.函数的作用域由当前程序变为整个文件。

4、修饰类的成员变量

a.静态成员变量需在类中声明,在类外定义(const修饰除外)。

b.静态成员变量为所有类对象共享,并没有包含在具体的对象中。

c.静态成员变量的访问:类名::静态成员变量名  或  对象.静态成员变量名。

5、类的静态成员函数

a.静态成员函数没有this指针,不能访问非静态成员(变量、函数)。

b.静态成员函数不能调用非静态成员函数。而非静态成员函数可以调用静态成员函数。














标签:变量,静态,作用域,成员,关键字,详解,static,修饰,函数
From: https://blog.51cto.com/u_16003640/6315093

相关文章

  • const关键字详解
    1、const修饰普通变量变量变为常变量,具有常数性质的变量。不可以修改(只读)。2、const修饰指针inta=10;constint*p1=&a;intconst*p2=&a;int*constp3=&a;第一个const修饰的是*p1,也就是不可以通过指针引用去修改指针所指向变量的值。第二个与第一个效果相同,写法不一样而已。......
  • 详解c++STL—容器set/multiset
    1、set基本概念1.1、功能所有元素都会在插入时自动被排序1.2、本质:set/multiset属于关联式容器,底层结构是用二叉树实现。1.3、set和multiset区别set不允许容器中有重复的元素multiset允许容器中有重复的元素2、set构造和赋值2.1、功能描述创建set容器以及赋值2.1、构造set<T>st;/......
  • 多图详解:不停机分库分表五个步骤
    1理论知识1.1分库分表是否必要分库分表确实可以解决单表数据量大这个问题,但是并非首选。因为分库分表至少引入了三个必须解决的突出问题。第一是分库分表方案本身具有的复杂性。第二是本地事务失效问题,原本在同一个数据库中可以保证强一致性业务逻辑,分库之后事务失效。第三是......
  • Java开发 Shiro框架详解(轻松入门)
    ShiroShiro简介什么是Shiro?ApacheShiro是一个Java的安全(权限)框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认证,授权,加密,会话管理,Web集成,缓存等.官网:shiro.apache.org/官方文档十分钟快速入门:shiro.a......
  • NumPy_数据处理详解—矩阵运算
    示例根据出版的图书进行代码桥写代码示例#!/usr/bin/python3#-*-coding:utf-8-*-importpandasaspdimportnumpyasnpimportopen3daso3ddefget_from_eye(rotation,trans):##单位矩阵-对角线元素为1,非对角线元素全为0的矩的正方矩阵np.identity......
  • 【Linux】详解六种配置Linux环境变量的方法(以centos为例)
    本文时间2023-05-19作者:sugerqube漆瓷本文重理解,!!忽略环境变量加载原理!!本文目标:理解六大环境变量配置,选择合适的配置文件进行配置配置环境的理由以shell编程为例现在我们想要运行名为"sugerqube.sh"的脚本需要运行的命令是./sugerqube.sh即在命令行输入脚本的地址注:.......
  • Media Queries详解
     MediaQueries直译过来就是“媒体查询”,在我们平时的Web页面中head部分常看到这样的一段代码: <linkhref="css/reset.css"rel="stylesheet"type="text/css"media="screen"/> <linkhref="css/style.css"rel="stylesheet"typ......
  • Java Semaphore 信号量详解
    Semaphore基本使用场景Semaphore的基本使用场景是限制一定数量的线程能够去执行.举个简单的例子:一个单向隧道能同时容纳10个小汽车或5个卡车通过(1个卡车等效与2个小汽车),而隧道入口记录着当前已经在隧道内的汽车等效比重.比如1个小汽车和1个卡车,则隧道入口显示3.若隧道......
  • JSON.parse和JSON.stringify方法详解
    1.JSON.parse()用于从一个字符串中解析出json对象<!--作者:zhangfan页面名称:JSON.parse()、JSON.stringify()使用方法--><template><divid="product-list-one"><button@click="jsonParse()">执行jsonParse</button></div><......
  • JVM堆详解
     1、在JVM堆空间可以分为三个大区:新生代、老年代、永久代。2、新生代可以划分为三个区,Eden区,两个幸存区。 在JVM运行时,可以通过配置一下参数改变整改JVM堆的配置1.JVM运行时堆的大小-Xms堆的最小值-Xmx堆空间的最大值2.新生代堆空间大小调整-XX:NewSize新生......