statyczny wskaźnik do składowej?

0

Witam Panowie.
Mam taki problem, mianowcie mam klasę , nazywa się klasaA, w której jest statyczny wskaźnik do składowej innej klasy.

static int klasaB::*wsk1;

jak takiemu wskaźnikowi nadać wartość?

bo coś takiego
int klasaB klasaA::*wsk1 = &klasaB::liczba1;
wyrzuca błąd:
error: expected initializer before ‘klasaA’|

jak to rozwiązać??

0

static int klasaB::*wsk1;
wsk1 jest wskaźnikiem do pokazywania wewnatrz klasy klasaB na zmienne typu int

a co to :
int klasaB klasaA::*wsk1 = &klasaB::liczba1;
ma niby znaczyć?
wsk1 jest wskaźnikiem do pokazywania wewnatrz klasy klasaA na zmienne typu klasaB (a ten int skąd się tam wziął?)

0

Witam, rozwiązaniem mojego problemu okazało się:

int klasaB::*klasaA::wsk1 = &klasaB::liczba1;

tylko nie za bardzo rozumiem dlaczego właśnie tak to ma wyglądać:( mógłby mi to ktoś wytłumaczyć?

Pozdrawiam

0

zwykłe pola statyczne inicjuje się tak:

int JaksKlasa::nazwaPolaStatycznego = 0;

Czyli musisz określi do jakiej klasy należy to pole. A dokładniej określasz w jakim zakresie nazw znajduje się ta zmienna.

w twoim przypadku musisz zrobić tak samo. Najpierw określasz zakres nazw, a dopiero potem typ (czytając od prawej do lewej). Z tego właśnie wynika ta konstrukcja.
Jeśli nadal nie rozumiesz, to sporóbuj zapisać to za pomocą typedef, to wtedy zrobi się to jasne:

typedef int klasaB::*TWskNaIntWB;

TWskNaIntWB klasaA::wsk1 = &klasaB::liczba1;

1 użytkowników online, w tym zalogowanych: 0, gości: 1