I was asking myself something this morning, and I can\'t find the words to properly \"google\" for it:
Lets say I have:
struct Foo
{
int bar;
};
s
For pod-types, the default initialization is zero-initialization.
Therefore:
Foo() : b() {}
is the same as Foo() : b(0) {}
I can't find the respective part of the C++ standard, but if you skip the initializer completely, then POD types shouldn't be default-initialized (unlike non-POD types, which are).
Therefore in your case, only the third example is correctly initialized.