Dostęp do zmiennej spoza struktury.

0

Mam taki kod:

template <class T>
class List {
public:
    List():
        counter(0){}

private:
    struct item{
        item():
            counter(counter+1){}//Tutaj jest błąd
    };
    unsigned int counter;
};

W jaki sposób dostać się do zmiennej count z poziomu konstruktora struktury item?
Chcę zliczać ile razy zostanie utworzona struktura item.

1

Instancje różnych typów nie są ze sobą wzajemnie powiązane. Albo uczyń counter zmienną globalną albo przekazuj instancję List<T> do konstruktora item

0

Nie chcę używać zmiennej globalnej, bo chcę, aby każdy obiekt typu `List' miał swój własny licznik.

kq napisał(a):

albo przekazuj instancję List<T> do konstruktora item

Kombinuję i kombinuję i nie mam pojęcia jak to zrobić.

1
    struct item{
        item(List<T>& instance) { instance.counter++; }
    };
2

Jako że znam kontekst pytania, to zaproponuję coś innego.
Nie zwiększaj tego licznika w konstruktorze item (dlaczego item miałoby wiedzieć o istnieniu jakiegoś licznika?), tylko wtedy gdy dodajesz ten item do listy. To jest zadanie klasy List. W prawdziwym świecie może istnieć sytuacja, gdzie item został stworzony, ale z jakiegoś powodu nie udało się dodać do listy, i co wtedy?

0

Mhm, czyli counterem sterowałyby metody, np. pushBack, albo remove, ewentualnie deleteItem itd?

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