Wyjaśnienie znaczenia ->

0

Witam. Mógłby ktoś wyjaśnić mi zapis

OtherArray[i] = theArray[i]->Clone();

głównie chodzi mi o symbol **-> **pomiędzy. Co on oznacza?

1

Operator wyłuskania. Oznacza zazwyczaj to samo co (*theArray[i]).Clone().

1

-> oznacza ze dany obiekt jest wskaznikiem na obiekt danej klasy. Jesli obiekt bylby zadeklarowany normalnie, nie jako wskaznik wtedy operator ten bylby kropka '.'.

Sprawdz sobie np.

klasa a;
klasa *b;

z a trzeba pisac a.at()
z b trzeba pisac b->at()

Chyba ze napiszesz (*b).at()

@up szybszy ;(

1

theArray jest tablicą wskaźników na obiekty klasy, która posiada metodę Clone(). Za pomocą -> odwoujesz się do pól i metod obiektu mając do niego wskaźnik. Przykad:

struct Foo { int bar(); }

Foo a; // obiekt
Foo* p_a = &a; // wskaznik na obiekt
a.bar(); // wywolanie metody na rzecz obiektu
p_a->bar(); // wywolanie metody na rzecz wskaznika na obiekt
(*p_a).bar(); // w zasadzie to samo co powyzej

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