Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Hack : public Object
- {
- public:
- int x;
- };
- //..
- Object &getObject();
- //...
- {
- //...
- Object &o = getObject();
- Hack *h = (Hack *) malloc(sizeof(Hack)); //выделяем память, чтобы никаких лишних конструкторов не вызвалось
- memcpy(h, &o, sizeof(Object)); //копируем все из &o в h
- free(&o); //
- h->x = 1;
- //теперь надо заставить o думать, что ее адрес сменился на h
- //...
- }
- {
- //...
- Hack *h = reinterpret_cast<Hack &>(&getObject());
- delete h; //тут все окей, память удаляется как надо, ничего не портится, конструктор вызывается
- //...
- }
Advertisement
Add Comment
Please, Sign In to add comment