关于静态变量与静态对象?

hudongping 2003-07-13 11:27:23
静态变量与静态对象这俩者有关联吗或者后者是前者的一种. 静态变量的惜构函数什么时候被调用? 可否详细的解释后者
...全文
34 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
leasun 2003-07-13
  • 打赏
  • 举报
回复
以Bjarn博士的观点,变量和对象从理论上是一致的,这就是为什么你可以写int i(0);这样的语句。
luohualiushui 2003-07-13
  • 打赏
  • 举报
回复
我觉得静态变量与静态对象没什么区别
都是存储在静态存储区的数据
在进程结束时系统释放它们占的资源,有析构函数就调用
MaiCle 2003-07-13
  • 打赏
  • 举报
回复
对于类或结构创建的实例称为对象(称为变量也可,但感觉不太专业),一般语言定义的内建类型(也就是存在于关键字中)生成的实例称变量。

至于静态的概念,就同上面两位所说的。
MaiCle 2003-07-13
  • 打赏
  • 举报
回复
同意steedhorse(晨星)的观点,
晨星 2003-07-13
  • 打赏
  • 举报
回复
我觉得“静态”指的都是存储上的概念。即静态分配内存。

在C++中,“变量”通常指的是内建类型的实例,“对象”则通常指用户自定义类型的实例。如果这样来区分,那么“对象”是通过构造函数初始化,“变量”虽然没有“构造函数”和“析构函数”的概念,但也可以初始化(“静态变量”则必然被初始化),所以,二者还是很相似的。
bugfree 2003-07-13
  • 打赏
  • 举报
回复
静态变量与静态对象不是相同地概念, 你不能将一个看为另一个地一种。
>>静态变量的惜构函数什么时候被调用?
这句话有问题, 静态变量没有析构函数。 而静态对象有析构函数。全局的静态对象的析构函数是在程序结束时调用的。
nirvana_li 2003-07-13
  • 打赏
  • 举报
回复
"全局对象的作用域是全局"这里的全局是指什么范围是指一个工程吗?
应该是程序文件,全局对象应该是在源代码的文件中是全局的。
cwanter 2003-07-13
  • 打赏
  • 举报
回复
是~
hudongping 2003-07-13
  • 打赏
  • 举报
回复
感谢CWANTER的回答但是我决的有几个概念不清楚. "局对象的作用域是全局"这里的全局是指什么范围是指一个工程吗?
cwanter 2003-07-13
  • 打赏
  • 举报
回复
给你说一下几个静态对象的区别吧:
全局静态对象跟全局对象生存期一样,都是从进程运行开始到结束,区别在于全局对象的作用域是全局,静态对象的使用域只在定义的文件中。
局部静态对象的生存期是从对象定义到进程结束,作用域是局部。
类静态成员对象对所有类实例来说只有一份。
cnxiaohai 2003-07-13
  • 打赏
  • 举报
回复
要说有关系还真有电关系,只要有他们哥俩的地方都会有STATIC出现~~~~~~~~~~~~~~~~~
cwanter 2003-07-13
  • 打赏
  • 举报
回复
同意steedhorse(晨星),静态对象的析构函数在main执行后由exit()调用。
hudongping 2003-07-13
  • 打赏
  • 举报
回复
可是静态对象在什么是时候用呢?既然是静态的分配空间那摸我觉得静态对象的内部的成员的值是不可变的.一般在什么需创建这样的对象?谢谢大家!

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧