Re: хочу странного: сменить класс объекта в runtime
От: korzh.pavel Россия  
Дата: 31.08.07 16:50
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Есть два класса-потомка (A и B) от общего базового абстракта P.


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

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

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


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


CS>
CS>P* p = new A;
CS>


CS>Существует ли способ сменить класс объекта в p?

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

CS>Вот такой вот вопрос.


P* p = new B;




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