Default Initialization Versus Zero Initialization

前端 未结 4 583
Happy的楠姐
Happy的楠姐 2020-12-20 05:14

I cannot understand the behavior of gcc 4.8.1 or Visual Studio 2015 with respect to default initialization versus value initialization.

It doesn\'t help that I\'m tr

4条回答
  •  -上瘾入骨i
    2020-12-20 05:55

    The logic is quite simple:

    1. Default initialization of a class just default initializes all members.
    2. Default initialization of built-in types leaves member uninitialized.
    3. Accessing an uninitialized object yields undefined behavior.
    4. Undefined behavior can do anything it wants.
    5. Both compilers provide "correct" results. Note that causing nasal demons to be emitted would also be correct.

提交回复
热议问题