#include <iostream>
using namespace std;
class A
{
public:
int x;
A(){}
};
class B
{
public:
int x;
B()=default;
};
int main()
{
int x = 5;
new(&x)A(); // Call for empty constructor, which does nothing
cout << x << endl;
new(&x)B; // Call for default constructor
cout << x << endl;
new(&x)B(); // Call for default constructor + Value initialization
cout << x << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2xhc3MgQSAKewpwdWJsaWM6CiAgICBpbnQgeDsKICAgIEEoKXt9Cn07CgpjbGFzcyBCIAp7CnB1YmxpYzoKICAgIGludCB4OwogICAgQigpPWRlZmF1bHQ7Cn07CgoKaW50IG1haW4oKSAKeyAKICAgIGludCB4ID0gNTsKICAgIG5ldygmeClBKCk7IC8vIENhbGwgZm9yIGVtcHR5IGNvbnN0cnVjdG9yLCB3aGljaCBkb2VzIG5vdGhpbmcKICAgIGNvdXQgPDwgeCA8PCBlbmRsOwogICAgbmV3KCZ4KUI7IC8vIENhbGwgZm9yIGRlZmF1bHQgY29uc3RydWN0b3IKICAgIGNvdXQgPDwgeCA8PCBlbmRsOwogICAgbmV3KCZ4KUIoKTsgLy8gQ2FsbCBmb3IgZGVmYXVsdCBjb25zdHJ1Y3RvciArIFZhbHVlIGluaXRpYWxpemF0aW9uCiAgICBjb3V0IDw8IHggPDwgZW5kbDsKICAgIHJldHVybiAwOyAKfSA=