указатель на функцию - член класса
От: Русланыч http://asmru.virtualave.net
Дата: 08.08.01 17:01
Оценка:
#include<iostream.h>
class Test{
int val;
public:
Test(int a):val(a){}
void (Test::*f_pointer)(void);
void f_func1(void){
//при обращении к val-ошибка
cout<<"\nFunc1-"<<this->val;
}
void f_func2(void){
//при обращении к val-ошибка
cout<<"\nFunc2-"<<val;
}
};
int main(){
Test ob(123);
Test ob2(321);
ob.f_pointer=ob.f_func1;
__asm{
call ob.f_pointer;
}
ob.f_pointer=ob.f_func2;
__asm{
call ob.f_pointer;
}
ob2.f_pointer=ob2.f_func1;
__asm{
call ob2.f_pointer;
}
ob2.f_pointer=ob2.f_func2;
__asm{
call ob2.f_pointer;
}
/*
ob.f_pointer();
Вот это не работает, работает только через
ассемблерные вставки.
*/
return 0;
}
Re: указатель на функцию - член класса
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.08.01 17:19
Оценка:
Здравствуйте Русланыч.

Тут гтето не подалюку по-этому поводу такая темища была. Там есть ответы на все Ваши вопросы.

Вот ссылка http://www.rsdn.ru/forum/?action=message&amp;gid=9&amp;mid=1595
Автор: Vovchik
Дата: 31.05.01


Только читать все надо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: указатель на функцию - член класса
От: ndemia Россия http://ndemia.com
Дата: 08.08.01 20:58
Оценка:
Здравствуйте Русланыч, вы писали:

Р> ob.f_pointer();

Р>Вот это не работает,

И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re: указатель на функцию - член класса
От: ndemia Россия http://ndemia.com
Дата: 08.08.01 20:58
Оценка:
Здравствуйте Русланыч, вы писали:

Р> ob.f_pointer();

Р>Вот это не работает,

И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re: указатель на функцию - член класса
От: ndemia Россия http://ndemia.com
Дата: 08.08.01 20:58
Оценка:
Здравствуйте Русланыч, вы писали:

Р> ob.f_pointer();

Р>Вот это не работает,

И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re[2]: указатель на функцию - член класса
От: ndemia Россия http://ndemia.com
Дата: 08.08.01 21:00
Оценка:
О боже, не судите за троекопие — не привык я ещё к этому форуму :shuffle:
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.