Mam pewien problem.
class clasa
{
public:
int a,b,c;
clasa(int A,int B,int C):a(A),b(B),c(C)
{
}
void pisz(int clasa::*x)
{
cout<<this->*x<<endl;
}
void pisz1(int clasa::*x)
{
cout<<this->*x+1<<endl;
}
void pisz2(int clasa::*x)
{
cout<<this->*x+2<<endl;
}
void funkcja(int ktora,void (clasa::*wsk)(int clasa::*wskaznik));
};
void clasa::funkcja(int ktora, void (clasa::*wsk)(int clasa::*wskaznik))
{
if(ktora==1)
{
//(this->*wsk)(this->a); ///////////////Tu nie wiem jak odnieść się do składnika a///////////////////
}
else if(ktora==2)
{
//(this->*wsk)(this->b); //////////////////up///////////////////
}
else
{
//(this->*wsk)(this->c); ///////////////up///////////////////
}
}
main()
{
clasa obiekt(1,2,3);
obiekt.funkcja(2,&clasa::pisz);
}
Jak odnieść się do składników tych funkcji?
Błąd który wyskakuje
error: cannot convert 'int' to 'int clasa::*' in argument passing|