社区
C++ 语言
帖子详情
关于static的作用(2)
brk1985
2011-07-19 09:24:33
1.关于类static变量的问题,非类成员static变量,初始化后下次值仍以上次为准,但是类static成员机制好像完全不一样?构造函数在编译期间被调用,在构造函数中做count统计,每次都发现变化,是因为static变量在编译期才可以被“正确”赋值吗?
2.源程序有多个源文件组成,为什么在全局变量前面加个static,该全局变量作用域就变为文件域(只在该源文件有效)?
...全文
137
9
打赏
收藏
关于static的作用(2)
1.关于类static变量的问题,非类成员static变量,初始化后下次值仍以上次为准,但是类static成员机制好像完全不一样?构造函数在编译期间被调用,在构造函数中做count统计,每次都发现变化,是因为static变量在编译期才可以被“正确”赋值吗? 2.源程序有多个源文件组成,为什么在全局变量前面加个static,该全局变量作用域就变为文件域(只在该源文件有效)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jxiaoshen
2011-07-19
打赏
举报
回复
[Quote=引用 3 楼 luciferisnotsatan 的回复:]
static 修饰全区变量,表示尽该文件里可见。这里的static没有静态的意思。
用了同一个关键字static表示了几种不同的概念,C++之父也说了,这是当初设计时的一个失误。
[/Quote]
++
Xomic
2011-07-19
打赏
举报
回复
static静态成员变量 ,只在所在的块中可见!但是生命期是到整个程序结束...
tangyulong1214
2011-07-19
打赏
举报
回复
1、建议楼主继续看书,还没有理解class中static变量初始化以及与每个类实例的关系;
2、没得啥说的,语法如此规定,您必须如此用!
LM星
2011-07-19
打赏
举报
回复
在全局模式下 STATIC oBJECT 没什么意义
在OBJECT **{
static xxxx; //在这种对象中不占用实际位置,它属于这对象所有实例共享的可以把它看成一个引用对象一创建初始化引用都为同一变量或OBJECT的实例
}
在函数中 void Function(***,***,……){
static **** ****;//申明了一个相当于全局变量的对象程序打开到关闭这个东西始终存在且不同于全局变量它对外是不可见的只有运行到这函数体内这个对象只能被这函数体内所识别
}
至善者善之敌
2011-07-19
打赏
举报
回复
[Quote=引用 2 楼 xuxinmmy 的回复:]
1、静态成员变量跟类外的静态变量在赋值上是一样的,编译期赋初始值,然后运行时访问的都是上一次修改后的值。你说的不一样是不是你的测试代码有问题?
2、这是static关键字的功能之一啊,限制变量使用范围为本文件
[/Quote]
+++1
luciferisnotsatan
2011-07-19
打赏
举报
回复
static 修饰全区变量,表示尽该文件里可见。这里的static没有静态的意思。
用了同一个关键字static表示了几种不同的概念,C++之父也说了,这是当初设计时的一个失误。
xuxinmmy
2011-07-19
打赏
举报
回复
1、静态成员变量跟类外的静态变量在赋值上是一样的,编译期赋初始值,然后运行时访问的都是上一次修改后的值。你说的不一样是不是你的测试代码有问题?
2、这是static关键字的功能之一啊,限制变量使用范围为本文件
hai040
2011-07-19
打赏
举报
回复
类静态成员除了所在域外,类似于全局变量
2.规定
lgplgp2008
2011-07-19
打赏
举报
回复
对于问题2,如下解释
局部变量出了作用域变量值就没有了,
但静态变量(全局或者局部)的变量值一直存在,直到程序终止,只不过仅能在定义该变量的源文件中或者函数中使用这个变量,其他文件不能使用。
可以去看C++参考手册
关键字
static
的
作用
1、 关键字
static
的
作用
是什么? 正确答案: 这个简单的问题很少有人能回答完全。在C语言中,关键字
static
有三个明显的
作用
: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这...
Java中
static
的
作用
详解_java中
static
作用
详解
static
表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态
static
代码块,但是Java语言中没有全局变量的概念。被
static
修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内找到他们。因此,
static
对象可以在它的任何对象创建之前访问,无需引用任何...
static
作用
与用法
目录 一、
static
变量 二、
static
方法 三、
static
代码块 四、
static
class
static
表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态
static
代码块,但是Java语言中没有全局变量的概念。被
static
修饰的成员变量和成员方法独立于该类的任何对象,也就是说,它不依赖类特定的实例,当声明它类的对象时,不生成
static
变量的副本,被类的所有...
C语言中
static
关键字用法和
作用
static
修饰的对象:
static
关键字可以修饰:局部变量、全局变量、函数
static
修饰后改变了什么? 1.改变了生存周期; 2.改变了
作用
域;
static
修饰不同对象时的
作用
: 1.局部变量: 局部变量就是在函数内定义的变量,普通的局部变量,生存周期是随着函数的结束而结束,每次函数重新执行,局部变量都是新的值,不会保留上次的值。当用
static
修饰后,局部变量的生存周期就是当程序结束才会结束。 .........
Java中
static
的
作用
详解
static
表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态
static
代码块,但是Java语言中没有全局变量的概念。 被
static
修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。 只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,
static
对象可以在它的任何对象创建之前访问,无需...
C++ 语言
65,209
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章