#include <iostream>
class Test{
private:
int a;
public:
Test(int i, double j) : a{i}, b{j} {}
void show();
double b;
};
void Test::show(){
std::cout << a << " " << b << std::endl;
}
void doMagic(Test& x){
Test* objPtr = &x;
int* val1Ptr = reinterpret_cast<int*>(objPtr);
*val1Ptr = 41;
double* val2Ptr = reinterpret_cast<double*>(val1Ptr+1);
*val2Ptr = 2.71;
}
int main(){
Test x(1, 3.14);
std::cout << "Przed modyfikacja: ";
x.show();
doMagic(x);
std::cout << "Po modyfikacji: ";
x.show();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgVGVzdHsKcHJpdmF0ZToKICAgIGludCBhOwpwdWJsaWM6CiAgICBUZXN0KGludCBpLCBkb3VibGUgaikgOiBhe2l9LCBie2p9IHt9CiAgICB2b2lkIHNob3coKTsKICAgIGRvdWJsZSBiOwp9OwoKdm9pZCBUZXN0OjpzaG93KCl7CiAgICBzdGQ6OmNvdXQgPDwgYSA8PCAiICIgPDwgYiA8PCBzdGQ6OmVuZGw7Cn0KCnZvaWQgZG9NYWdpYyhUZXN0JiB4KXsKICAgIFRlc3QqIG9ialB0ciA9ICZ4OwogICAgaW50KiB2YWwxUHRyID0gcmVpbnRlcnByZXRfY2FzdDxpbnQqPihvYmpQdHIpOwogICAgKnZhbDFQdHIgPSA0MTsKICAgIGRvdWJsZSogdmFsMlB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8ZG91YmxlKj4odmFsMVB0cisxKTsKICAgICp2YWwyUHRyID0gMi43MTsKfQoKaW50IG1haW4oKXsKICAgIFRlc3QgeCgxLCAzLjE0KTsKICAgIHN0ZDo6Y291dCA8PCAiUHJ6ZWQgbW9keWZpa2FjamE6ICI7CiAgICB4LnNob3coKTsKICAgIGRvTWFnaWMoeCk7CiAgICBzdGQ6OmNvdXQgPDwgIlBvIG1vZHlmaWthY2ppOiAiOwogICAgeC5zaG93KCk7CiAgICByZXR1cm4gMDsKfQ==