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

EW>Здравствуйте, 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 ... и Адрес Метода ответа не нашел

EW>

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

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


EW>Ed.ward


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