对象创建及其内存在cpp中的初始化

时间:2015-10-22 13:37:16

标签: c++

我对对象的对象创建和内存初始化有一些疑问。

根据下面提到的代码,当使用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;
}

0 个答案:

没有答案