хочу странного: сменить класс объекта в runtime
От: c-smile Канада http://terrainformatica.com
Дата: 31.08.07 16:40
Оценка:
Есть два класса-потомка (A и B) от общего базового абстракта P.

class P
{
   int data;
   virtual foo() = 0;
}

class A: public P
{
   // no class specific data, only methods
   virtual foo() { ++data; }
}

class B: public P
{
   // no class specific data, only methods
   virtual foo() { --data; }
}


Есть некий конкретный instance созданный как A.

P* p = new A;


Существует ли способ сменить класс объекта в p?
Я понимаю что стандартными способами — нет.
Но в принципе это задача смены одного указателя на vtbl у объекта.
Как бы это сделать путем "наименьшего хака"?

Вот такой вот вопрос.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.