// 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: '*': недопустимый операндов типа «пустоте (__thiscall MyClass :: *) (аннулируются) Const
ошибка C2064: термин не вычисляться в функции принятия 0 аргументов
'(т -> * (t-> fPtr))() 'Я думаю, должен работать – KoKuToru
@KoKuToru: Это неправильно. – Nawaz
@ Наваз работает, я тестировал его. – KoKuToru