首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于"local static"的作用域 [已结贴,结贴人:hmsuccess]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hmsuccess
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 15:28:06 楼主
    对于static对象,其寿命我认为应该是从被构造出来到程序结束为止,那local-static对象呢?
    例如:
    C/C++ code
    string& bind() { static string str; ..... return str; }
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • akirya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

    发表于:2008-08-19 15:34:161楼 得分:0
    从被构造出来到程序结束为止
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bitxinhai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 15:39:002楼 得分:2
    应该是到程序的结束,string的对象才被析构!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cwc270
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 15:39:103楼 得分:1
    寿命是这样,但只能在该范围内访问。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hmsuccess
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 15:52:004楼 得分:0
    引用 1 楼 akirya 的回复:
    从被构造出来到程序结束为止

    那就是说函数bind结束后,local-static对象str还没有被析构
    原因呢?谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • akirya
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 6

    发表于:2008-08-19 19:55:485楼 得分:10
    引用 4 楼 hmsuccess 的回复:
    引用 1 楼 akirya 的回复:
    从被构造出来到程序结束为止

    那就是说函数bind结束后,local-static对象str还没有被析构
    原因呢?谢谢

    规定的,所以各个编译器都这样实现了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • richbirdandy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 20:01:106楼 得分:3
    原因参考 C++对象模型
    local-static对象即使在其所在的函数没调用也会被初始化
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wjb_yd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 21:05:387楼 得分:2
    从函数第一次被调用,到主程序结束
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • iambic
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 4

      3

      3

    发表于:2008-08-19 21:12:138楼 得分:2
    生命期还是作用域?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hmsuccess
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 21:12:509楼 得分:0
    谢谢大家!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freshui
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 21:43:4610楼 得分:0
    static的变量是放在内存的全局区的
    不过作用域只在本地, 一般就是所在的大括号扩中的部分
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wuwenjie0506
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 21:51:0711楼 得分:0
    string 是在编译的时候就被分配好的,生成期为程序执行期间,但可见性就只有bind内部.
    建议你好好理会生成期和可见性这两个概念.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cyblueboy83
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:03:1712楼 得分:0
    local-static对象

    跟全局静态对象的生存空间是一样的,在进程的全局存储区
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved