указатель на функцию - член класса
#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: указатель на функцию - член класса
Здравствуйте Русланыч.
Тут гтето не подалюку по-этому поводу такая темища была. Там есть ответы на все Ваши вопросы.
Вот ссылка
http://www.rsdn.ru/forum/?action=message&gid=9&mid=1595Автор: Vovchik
Дата: 31.05.01
Только читать все надо.
Есть логика намерений и логика обстоятельств,
последняя всегда сильнее.
Re: указатель на функцию - член класса
Здравствуйте Русланыч, вы писали:
Р> ob.f_pointer();
Р>Вот это не работает,
И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re: указатель на функцию - член класса
Здравствуйте Русланыч, вы писали:
Р> ob.f_pointer();
Р>Вот это не работает,
И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re: указатель на функцию - член класса
Здравствуйте Русланыч, вы писали:
Р> ob.f_pointer();
Р>Вот это не работает,
И это правильно.
Нужно что-то типа:
(ob.*ob.f_pointer)()
Re[2]: указатель на функцию - член класса
О боже, не судите за троекопие — не привык я ещё к этому форуму :shuffle:
Пока на собственное сообщение не было ответов, его можно удалить.