Załóżmy, że mam ogólną klasę obiektu i ogólną klasę listy. Chcę zachować listę tych obiektów. Czy powinienem przechowywać je jako List<Object>
lub List<Object*>
?Przechowywanie listy obiektów
Jeśli używam List<Object>
i mam metody takie jak:
if(some_condition) {
Object obj;
myObjectList.append(obj);
}
A moja lista klasa zachowuje tylko odniesienie do obiektu, tak szybko, jak to, że if kończy, obiekt jest niszczony, a obiekt, który wysłałem, staje się nieważny. Tak więc kończę robić coś w stylu:
Object *obj = new Object;
myObjectList.append(*obj);
Tak, aby nie został zniszczony. Ale teraz przedmioty są niedorozwinięte, nie? Ponieważ teraz są bezpiecznie przechowywane na liście jako obiekty, a nie na wskaźnikach do obiektów, więc nie mogę wywołać na nich usunięcia ... lub czy zostaną automatycznie zniszczone, gdy zostaną usunięte z listy?
W takim przypadku powinienem prawdopodobnie użyć List<Object*>
i usunąć je z listy, gdy skończę, nie?
Tak zagmatwany ... Jestem pewien, że mam gdzieś fundamentalne nieporozumienie.
Problemem jest to, że programujesz jak to jest java ... to nie jest. –
Cóż, nie pochodzę z tła Java ani nic ... Jestem po prostu trochę opóźniony dzisiaj. – mpen