首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

非常简单的程序,但是有令小弟我迷惑不解的结果

2012-03-28 
非常简单的程序,但是有令我迷惑不解的结果!#include iostream#include stringusing namespace stdcla

非常简单的程序,但是有令我迷惑不解的结果!
#include <iostream>
#include <string>

using namespace std;

class Test
{
public:
Test(int a):pi(a){}
int &pi;
};

int main()
{
int b=2;
Test t(b);
cout<<t.pi<<endl;

return 0;
}





输出结果为什么是一个看不懂的数据啊?
求大神给解释一个下了!

谢谢了!

[解决办法]

C/C++ code
Test(int a):pi(a){}
[解决办法]
因为你这个引用是引用了一个临时对象
Test(int a):pi(a){}
这个函数一结束 这里的临时对象a就被销毁了,所以结果不确定
[解决办法]
Test(int a):a是一个临时变量构造完毕后,a已经不存在了,但你仍然试图使用pi访问它,于是发生了错误
改成:Test(int& a)即可
[解决办法]
LZ可以结贴了

热点排行