Usuwanie z tablicy obiektów.

0

Witam

Mam problem, otóż ma klasę abstrakcyjną Zbior oraz klasę od niej dziedziczącą o nazwie Element.
Mam tablicę Zbior *tablica_obiektow[10]. Obiekty klasy Element tworzę w ten sposób, tablica_obiektow[i] = new Element().
Obiekty usuwam poprzez delete tablica_obiektow[i]. Mam metodę wyświetl, którą wyświetla pewne dane przechowywane w obiekcie klasy Element.

Problem pojawia się gdy np. mam 5 obiektów w tablic_obiektow, usunę obiekt z indeksem 2, i gdy w pętli chcę wyświetlić dane to wyświetlą się tylko, które były przed usuniętym obiektem. Jak to ominąć?

Czy jest możliwość w takiej sytuacji użycia inteligentnych wskaźników?

0

Tu potrzebny jest inteligentny programista a nie wskaźnik. Albo nie używaj tablicy tylko vector<> albo przenoś elementy. Najprościej zamienić usuwany element z ostatnim a potem "skrócić" tablicę.

0

A gdybym tak, usuwał obiekt poprzez delete tablica_obiektow[i], a później przypisywał wartość, tablica_obiektow[i] = 0. A w momencie wyświetlania sprawdzałbym czy nie jest zerem. Ma to sens?

0

tracisz co prawda wtedy 4 bajty, ale zyskujesz na czasie. W niektórych przypadkach może to być dobre rozwiązanie.

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