Automatyczne tworzenie obiektów klasy.

Automatyczne tworzenie obiektów klasy.
PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam,
piszę program w c++ w którym funkcja jednej klasy(np. class Statek) musi tworzyć obiekty innej klasy (np. class Gwiazda) wiem, że ręcznie tworzy się to tak:

Kopiuj
 
Gwiazda alfa;
Gwiazda beta; // itd...

natomiast mi chodzi o to by napisać prostą funkcję, która stworzy automatycznie np. 5 obiektów klasy Gwiazda o nazwach a,b,c,d,e albo jakiś innych, przy wywołaniu dla przykładu stworz(5).
W swoich poszukiwaniach znalazłem coś co się nazywa automatyczna alokacja pamięci oraz dynamiczna alokacja pamięci, niestety nie znalazłem jak w prosty sposób zaimplementować to do mojej funkcji(a przynajmniej moje poszukiwania nie dały prostej odpowiedzi).
pozdrawiam,
Profi

AN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
1

Stwórz dynamiczną tablicę obiektów.

Kopiuj
void stwórz( int ile, Gwiazda * gwiazdy )
{
     gwiazdy = new Gwiazda[ile];
}

int main()
{
     Gwiazda * moje_gwiazdy;
     // utworzenie 10 gwiazd
     stwórz( 10, moje_gwiazdy );

     // zwolnienie pamięci
     delete [] moje_gwiazdy;

     return 0;
} 
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Masz na to 4 wersje:

Kopiuj
void stwórz(int ile,Gwiazda **gwiazdy ) { *gwiazdy=new Gwiazda[ile]; } 
Gwiazda *moje_gwiazdy;
stwórz(10,&moje_gwiazdy );

void stwórz( int ile, Gwiazda *&gwiazdy ) { gwiazdy=new Gwiazda[ile]; } 
Gwiazda *moje_gwiazdy;
stwórz(10,moje_gwiazdy );

Gwiazda *stwórz( int ile) { return new Gwiazda[ile]; } 
Gwiazda *moje_gwiazdy=stwórz(10);

Gwiazda *moje_gwiazdy=new Gwiazda[ile];
PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Dzięki wielkie! Bardzo mi pomogliście :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.