Klassenarray initialisieren
-
Morgen! Ich habe folgenden Code:
num_types = g_pSurfGalaxies->w / 16; for(i = 0; i < NUM_GALAXIES; i++) { g_Galaxies[i].x = rand() % 640; g_Galaxies[i].y = rand() % 480; g_Galaxies[i].type = rand() % num_types; }Ich war der Meinung das ging auch einfacher wenn der ctor der Galaxyklasse die Parameter schon anbietet, irgendwas nach dem Motto:
// Pseudocode, alle 50 instanzen sollen mit Zufallswerten initialisiert werden Galaxy g_Galaxies[50] = Galaxy(rand() % 640, rand() % 480, rand() % num_types);Ich will mir die forschleife also sparen, wie ging das? Oder ging das gar nicht

-
wenn du c'tor argumente anbietest, wird jedes einzelne element mit denselben parametern konstruiert - du könntest dir also einen ensprechenden c'tor basteln, etwa so:
struct Galaxy { Galaxy(int width,int height,int types) : x(rand()%width),y(rand()%height),type(rand()%types) {} int x,y,type; }; // ... num_types = g_pSurfGalaxies->w / 16; Galaxy g_Galaxies[NUM_GALAXIES](640,480,num_types);
-
Ah das war die Syntax die ich gesucht hatte, danke

Galaxy g_Galaxies[NUM_GALAXIES](640,480,num_types);