これにつまずいただけですが、ここで何が起こっているのか誰か説明できますか?
struct Foo {
int i;
~Foo() {
std::cout << i << std::endl;
}
};
void bar()
{
Foo f;
f.i = 1;
f = Foo();
f.i = 2;
}
次の出力が得られます。
-85899... (gibberish = "default" value for uninitialized int)
2
私が期待した場所
1
2
f.i = 1;
ここで効果がないように見えるのはなぜですか?