interesuje mnie tylko czy składnia umożliwia zapisanie definicji funkcji poza wnetrzem klasy, bez definiowania jej we wnątrz, jakj tu:
class KlasaA
{
int Funkcja( char * ){ cout << "Funkcja" ;};
int (KlasaA::*FunkcjaWskaznik( int cos ))( char * )
{ cout << "Funkcja zwracajaca wskaznik";
return &KlasaA::Funkcja; }
}
albo z urzyciem 'typedef':
class KlasaA;
typedef int (KlasaA::*P2Func)( char * );
class KlasaA
{
int Funkcja( char * ){ cout << "Funkcja" ;};
P2Func FunkcjaWskaznik( int cos );
}
P2Func KlasaA::FunkcjaWskaznik( int cos ) // definiuje funkcje 'KlasaA::' informuje kompilator że to
{ // jest definicja metody klasy
cout << "Funkcja zwracajaca wskaznik";
return &KlasaA::Funkcja;
}
ale jak napisać to samo bez zdefiiowanego typu wskaźnika przez urzycie 'typedef'?
int (KlasaA::*FunkcjaWskaźnik( int cos ))( char * ) // musi być dodane informacja że to jest metoda
{ // ale jak to ma wyglądać
cout << "Funkcja zwracajaca wskaznik";
return &KlasaA::Funkcja;
}
inaczej kompilator traktuje powyższy fragment jako definicje funkcji globalnej zwracającej wskaźnik do
metdy należącej do 'KlasaA'. W gruncie rzeczy z definicją typu jest przejżyściej, jestem tylko ciekawy czy da sie to zrobić za pomocą jednego wyrażenia.