Uff, niezły z Ciebie sekatoR :D
Teraz to hardcore dowaliłeś.. To nie jest funkcja! To jest metoda (funkcja składowa), która jest zupełnie inaczej traktowana.
Po drugie: samo
wsk
jest też... SKŁADOWĄ klasy, która jest wskaźnikiem składowej! A składowe wymagają specjalnego traktowania :>
#include <iostream>
using namespace std;
class bee
{
public:
bee() { w = &bee::test; }
bool test(int i) { cout<<"test with "<<hex<<i<<endl; return true; }
bool (bee::*w)(int ala);
};
int main()
{
bee a;
//!! to jest prawidłowe wywołanie !!
(a.*(a.w))( 0xdeadbeef );
//!!
// Mozna lepszy hardcore przez wskaznik wskaznika :)
// deklaracja: //
typedef bool (bee::*mptr)(int); // typ taki jak 'w' klasy bee - wskaznik metody bool (int)
// wskaznik skladowej klasy,
// ktora jest wskaznikiem skladowym klasy bee
mptr bee::*wptr = &bee::w;
/////////////////
// dereferencja: //
mptr b = a.*wptr;
(a.*b)( 111111 );
// albo
(a.*(a.*wptr))( 222222 );
///////////////////
}
Po trzecie: nie wiem jak sobie poradzi z tym VC++.
Po czwarte: zmień projekt...