关于利用引用返回返回静态局部变量有点问题
#include <iostream>using namespace std;
int & func()
{
static int a; //静态局部变量a的生命周期是全局的
return a;//返回一个生命周期长于func函数执行期的变量
}
int main()
{
int &ra=func(); //ra为静态变量的别名
cout<<func()<<endl; //输出0 ,静态变量默认为0
func()+=8; //作为左值使用
cout<<func()<<endl;//输出8
ra +=10; // 丧失了局部可见性
cout<<func()<<endl;//输出18
return 0;
}
代码中第3行的int & func() 是否是引用变量的定义?,我知道声明是需要绑定一个变量实体,这个我感觉像定义
在此先谢谢各位大牛了
[[it] 本帖最后由 shangke 于 2009-8-3 15:52 编辑 [/it]]