#include <iostream>
using namespace std;
class Foo
{
public:
int a;
};
int main()
{
Foo f;
Foo f1(f);
cout<<f.a;
return 0;
}
这里f.a打印垃圾值,但是当我们添加f1.a时,f.a和f1.a都用0初始化。
#include <iostream>
using namespace std;
class Foo
{
public:
int a;
};
int main()
{
Foo f;
Foo f1(f);
cout<<f.a<<f.b;
return 0;
}
请帮助我理解这背后的原因。
答案 0 :(得分:3)
未初始化的变量具有不确定的值,即发生在该内存中的任何内容。 0
是可能的不确定值之一,以及任何其他值。
答案 1 :(得分:0)
复制c-tor不会初始化原始数据类型,只要您没有明确声明它。 未初始化变量的值由属于此变量的RAM空间值确定,因此它可以是任何值。但是这个ram更有可能被设置为0(可能在计算机重启后)。