我对对象的对象创建和内存初始化有一些疑问。
根据下面提到的代码,当使用X a1=X();
之类的语法创建对象内存时,我很困惑如何将对象内存初始化为0。这种语法错了吗?如果没有,那么X a1;
和X a1=X();
#include <iostream>
class X
{
public:
int i;
int j;
int k;
int l;
};
int main()
{
X a1;
X a2=X();
X a3;
#if 1
std::cout<<a1.i<<":"<<a1.j<<":"<<a1.k<<":"<<a1.l<<std::endl;//Output:369822704:32767:4196976:0 (some garbage value)
std::cout<<a2.i<<":"<<a2.j<<":"<<a2.k<<":"<<a2.l<<std::endl;//0:0:0:0 (always zero)
std::cout<<a3.i<<":"<<a3.j<<":"<<a3.k<<":"<<a3.l<<std::endl;//1:32767:0:0 (Always same)
#endif
return 0;
}