iterator C++

0

Cześć :)
Prezentuję Wam dwa konstruktory:

    StackIterator(Stack& s) : ref(s), index(0){}

I to się kompiule, natomiast nie kompiluje się: ( dlaczego? w czym lepsza jest lista inicjalizacyjna?)

    StackIterator(Stack& s) {
       ref = s;
        index = 0;
    }

error: unitialized reference memberStack::Iteraotr.....`

1

Po zakończeniu działania listy możesz już wywoływać metody tej klasy, a to oznacza że po zakończeniu listy obiekt musi być jako tako skonstruowany.

0

czyli rozumiem, że w C++ inicjalizacja ma odbywać się na liście?
Dotychczas myślałem, że nie ma znaczenia czy na liście, czy w ciele konsruktora.

1

Klasy bazowe oraz referencje są inicjalizowane wyłącznie na liście.

0

dobrze, a jaki jest tego powód?

0
_13th_Dragon napisał(a):

Po zakończeniu działania listy możesz już wywoływać metody tej klasy, a to oznacza że po zakończeniu listy obiekt musi być jako tako skonstruowany.

0

no wiesz, jako tako skonstruowany nie jest nazbyt precyzyjne.

0

Nie są precyzyjne ale łatwo domyślić się, skoro:

_13th_Dragon napisał(a):

Klasy bazowe oraz referencje są inicjalizowane wyłącznie na liście.

Po definicje precyzyjne zgłaszaj się do dokumentacji.

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