Nie do końca rozumiem działanie -> oraz * w klasach

0

Witam, dziś chciałem zapytać po co gdy mamy jakąś strukturę, zamiast deklarować zmienne:

Node temp;

deklarujemy je tak

Node * temp;

Wiem, że * są od wskaźników, ale w kodzie który analizuję (z książki) potem używa się zmiennej temp tak samo jak każdej innej zmiennej

np tu:

Queue::~Queue()
{
    Node * temp;
    while(front !- nullptr)
    {
        temp = front;
        front=front->temp;
        delete temp;
    }
}

A tutaj header

private:
    struct Node {Item item; struct Node * next; };
    enum {Q_SIZE = 10};
    Node * front;
    Node * rear;
    int items;
    const int qsize;

oraz gdyby ktoś mógł wyśnić do czego używa się -> lub powiedzieć jak nazywa się to co robi ten znak to sobie już bez problemu znajdę.

2

-> uzywa sie do wskaznikow
. uzywa sie do obiektow

5
xDevil2 napisał(a)

czyli w klasach -> jest takim zamiennikiem &?

Nie. a->b to to samo co (*a).b

2

Wskaźników używa się jak innych zmiennych bo to są zwykłe zmienne.

3

po co gdy mamy jakąś strukturę, zamiast deklarować zmienne:

Node temp;

deklarujemy je tak

Node * temp;

Po to, by mieć wskaźnik, a nie obiekt. A po co komu wskaźnik to musisz przeczytać do czego służą wskaźniki. W szczególności po

Node* temp;

nie ma żadnego obiektu, bo jeszcze żadnego nie stworzyłeś.

Wiem, że * są od wskaźników, ale w kodzie który analizuję (z książki) potem używa się zmiennej temp tak samo jak każdej innej zmiennej
Bo wskaźnik to też zmienna jak każda inna. Trzyma w sobie jakąś liczbę, i jedynie konwencja języka mówi że tej liczby można używać w specjalny sposób.

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