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的时候就不对了。
请问问题出在哪?怎么解决?