Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zerowanie konstruktora w liście.

Ostatnio zmodyfikowano 2015-04-15 20:33
Autor Wiadomość
Anim
Temat założony przez niniejszego użytkownika
Zerowanie konstruktora w liście.
» 2015-04-15 20:03:46
Chciałbym spytać, po co trzeba zerować konstruktor na początku tworzenia listy jednokierunkowej ? powiedzmy mam przykład:

C/C++
struct element
{
    int liczba;
    element * next;
};

struct lista
{
    element * first;
    void uzupelnij_liste( int liczba );
    void wyswietl_liste();
};

oraz

C/C++
struct element
{
    int liczba;
    element * next;
    element();
};

element::element()
{
    next = 0;
}
struct lista
{
    element * first;
    void uzupelnij_liste( int liczba );
    void wyswietl_liste();
    lista();
};

lista::lista()
{
    first = 0;
}

to w pierwszym przypadku (bez ustawienia i zdefiniowania konstruktora) w momencie posługiwania się tymi listami program czasami wariuje (niekoniecznie, ale zdarza się). W drugim przypadku jest bezbłędnie. I chciałbym spytać, dlaczego trzeba ustawić ten konstruktor. Zapewne nie do końca rozumiem pojęcie listy jednokierunkowej, ale nie ukrywam, że zazwyczaj trafi się tylko schematy posługiwania, niekoniecznie z wyjaśnieniem pewnych zagadnień. Prosiłbym dlatego o ewentualne wprowadzenie teoretyczne, jeśli to nie problem :)
P-130944
Quirinnos
» 2015-04-15 20:27:05
Jest taka fajna anegdotka ilustrująca "dlaczego".
Basia dostała dwa jabłka, zjadła jedno. Ile jabłek jej zostało?
Odpowiedź - nie wiadomo. Ponieważ nie wiemy ile jabłek miała przed dostaniem tych dwóch.
Zerujesz, aby przypadkiem nie przechowywało jakiś śmieci.
Gwoli ścisłości, zmienna wskaźnikowa powinna być zerowana
nullptr
(c++11), nie zerem.

PS. I nie zerujesz konstruktora, tylko zmienną. Konstruktor jest funkcją/metodą, która jest wywoływana w momencie tworzenia instancji danej klasy/struktury.
P-130946
Anim
Temat założony przez niniejszego użytkownika
» 2015-04-15 20:33:52
To jest piękna anegdotka :) Dziękuję za cierpliwe tłumaczenie moich różnych pytań :)
P-130948
« 1 »
  Strona 1 z 1