Упрощенный код
class Class1 {
public:
void funct(void) {
cout << "hello" << endl;
}
};
typdef void (Class1::*ptrFunc)(void);
int main() {
Class1 class1;
ptrFunc ptr = &Class1::funct;
class1.*ptr();
return 0;
}
С точки зрения ansi C++ все корректно, но при компиляции g++ выдает
test.cpp: In function `int main()':
test.cpp:15: error: must use .* or ->* to call pointer-to-member function in `ptr()'
Это что означает? Я может неправильно понял, но по моему, он мне говорит, что неправильный вызов функции ptr() по указателю. Обясните пожалуйста!