| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:c++ 对 local variable 的用法的问题
只看楼主 加入收藏
梧桐雨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
c++ 对 local variable 的用法的问题
据我所知局部变量的生存期应该是我们声明它的那个函数开始到结束吧。
但是我却有点困惑了。
例如:c++中重载 后置自增运算符++时
就比如是a++.show()吧
我看大家的做法都是:
 class & operator ++ (int)
 { class temp ;//(1)我们就用申请一个局部变量
    temp=a;//(2)接着就是
     a++;//(3)然后再
     return temp;//(4)
 }
这样我们就返回了show()的调用。相当执行temp.show();但是这不是已经跳出了重载函数来吗?为什么temp还是能继续被使用。这样不会出错么? 我在做题的时候就遇到问题了。因为我的class定义复杂(包含数组),调用show的时候发现temp中的值有的不对。单步调试时发现在重载函数中虽然能被 a 正确赋值 , 但是跳出后就变了,进入show的时候就不对了。
请问问题出在哪?怎么解决?
搜索更多相关主题的帖子: 小菜问题 
2009-08-15 17:33
taozztzz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:180
注 册:2008-12-21
收藏
得分:20 
问题是可以解决,不过一般来说不会有这样的写法:a++.show()
解决方法是:将
    class temp ;//(1)我们就用申请一个局部变量
这一行改为:
    static class temp ;//使用静态变量
这样及时函数结束,temp仍然存在。

胜利是唯一的信仰!
2009-08-15 18:06
梧桐雨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-7-27
收藏
得分:0 
谢谢
问题解决。
2009-08-17 15:08
快速回复:c++ 对 local variable 的用法的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050978 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved