Re: приведение адреса метода
От: Ed.ward Россия  
Дата: 22.01.03 08:24
Оценка:
Здравствуйте, dar veter, Вы писали:

DV>Помогите чайнику в моей проблеме....


DV>Есть класс

DV>
DV>class C
DV>{
DV>   private:
DV>     void Proc1(char *c);
DV>     void Proc2(void);
DV>}

DV>void C::Proc1(char *c)
DV>{
DV>}

DV>void C::Proc2(void)
DV>{
DV>  int addr;
DV>  unsigned char *buffer;
DV>  void (C::*ptr)(char *) = &C::Proc1;
DV>  addr = (int)ptr; // ошибка type cast
DV>  buffer = (unsigned char*)ptr; // ошибка type cast
DV>}
DV>


DV>Если я правильно понимаю, то в ptr хранится должен быть адрес метода Proc1 ??

DV>Или что то другое ????

DV>Как мне выполнить приведение ptr к числу .... (int)ptr непрокатывает, ошибка "type cast" ?

DV>И как мне выполнить приведение памяти по адресу ptr к массиву символов ....
DV>(unsigned char*)ptr .... таже ошибка....

DV>Заранее спасибо за ответ.... Вот такая мне кривость понадобилась ....

DV>P.S.В предыдущих топиках ... Address Methods ... и Адрес Метода ответа не нашел


union Test
{
  int addr;
  void (C::*ptr)(char *);
};

Test func;
func.ptr = &C::Proc1;
int iVal = func.addr;


Ed.ward
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.