>>185
これやってみ。aがデフォルトコンストラクタで構築された後、解体されずにまた構築されるから。

struct A {
A() { cout << "A::A()" << endl; }
A(int) { cout << "A::A(int)" << endl; }
~A() { cout << "A::~A()" << endl; }
};

struct B {
A a;
B(int i) {
cout << "B::B()" << endl;
new(&a) A(i);
}
};

B b(10);