Jak utworzyć tablicę obiektów?

0

Witam,
jak w temacie. Jeden obiekt tworzę w taki sposób:

StosWskaznikow<Bilet> obiekt(5);
//Publiczny jest tylko konstruktor StosWskaznikow(unsigned int); 
//Domyślny, oraz kopiujący są prywatne

Jak utworzyć tablicę takich obiektów?

0

StosWskaznikow<Bilet> obiektilość elementów;

0

Właśnie tak się nie da. W sumie problem rozwiązałem tworząc tablicę wskaźników, ale i tak ciekawi mnie jak zadeklarować ową statycznie.

0

ale czemu się nie da? jaki masz błąd?

0

O ile mnie pamięć nie myli to nie ma możliwości utworzenia takiej tablicy jeśli nie ma dostępu do konstruktora bez parametrów.

Możesz co najwyżej stworzyć całą tablice i jednocześnie ją zainicjalizować.

 
StosWskaznikow<Bilet> tablica[3] = {StosWskaznikow<Bilet>(3),
                                    StosWskaznikow<Bilet>(7),
                                    StosWskaznikow<Bilet>(0)}

Ewentualnie możesz dodać konstruktor domyślny publiczny wtedy już normalna definicja bez inicjalizacji powinna przejść.

0

może użyj vector<StosWskaznikow<Bilet> > lub array zamiast kombinować z tymi przestarzałymi struturami danych

0

@Adam Programmer
error: bad array initializer

@Tattva
W tym przypadku również jest wykorzystywany konstruktor kopiujący.

0

C++11: zrób tak jak @Tattva podał z wykorzystaniem vectora. vector<StosWskaznikow<Bilet>> v = { .. };
c++11 użyje move constructor zamiast copy constructor i po kłopocie.

Po jaką cholere tworzysz prywatny konstruktor kopiujący?

0

Jak już się koniecznie uparłeś na tablice to zawsze możesz wykorzystać placement new:
http://ideone.com/i5Svpa

EDIT:
w sumie to prostsza by była tablica wskaźników, ale to zależy czy chcesz zacować ciągłość pamięci

0

Żeby go nie używać. Zrobię kopie stosu, zwolnię pamięć i co?
Jak wspomniałem byłem po prostu ciekaw czy się da zadeklarować statycznie. Jak widać, nie, więc dziękuje za pomoc.

 StosWskaznikow<Bilet>** stos = new StosWskaznikow<Bilet>*[2];
    stos[0] = new StosWskaznikow<Bilet>(5);
    stos[1] = new StosWskaznikow<Bilet>(7);
0

da się statycznie ale nie bez żadnych hacków.

0

Statycznie (kurcze, przypadkiem edytowałem poprzedni kod zamiast zrobić forka):
http://ideone.com/i5Svpa

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