// class
class MyClass
{
public:
void doIt() const
{
cout << "It works!" << endl;
}
void(MyClass::*fPtr)() const;
};
// main
MyClass *t = new MyClass;
// store function address
t->fPtr = &MyClass::doIt;
(*(t->fPtr))(); // Whats wrong with this line?
Как я могу вызвать функцию, хранящуюся в fPtr? когда я пытаюсь (*(t->fPtr))(); компилятор выдает эти ошибки:
ошибка C2171: '*': недопустимо для операндов типа 'void (__thiscall MyClass::*) (void) const
ошибка C2064: термин не оценивается как функция, принимающая 0 аргументов
(t->*(t->fPtr))()
думаю должно сработать - person KoKuToru   schedule 21.12.2011