Ho creato un paio di strutture differenti in un programma. Ora ho una struttura con strutture nidificate, tuttavia non riesco a capire come inizializzarle correttamente. Le strutture sono elencate di seguito.Come inizializzare le strutture nidificate in C++?
/***POINT STRUCTURE***/
struct Point{
float x; //x coord of point
float y; //y coord of point
};
/***Bounding Box STRUCTURE***/
struct BoundingBox{
Point ymax, ymin, xmax, xmin;
};
/***PLAYER STRUCTURE***/
struct Player{
vector<float> x; //players xcoords
vector<float> y; //players ycoords
BoundingBox box;
float red,green,blue; //red, green, blue colour values
float r_leg, l_leg; //velocity of players right and left legs
int poly[3]; //number of points per polygon (3 polygons)
bool up,down;
};
Quindi tento di intialse una struttura Player appena creata chiamata player.
//Creates player, usings vectors copy and iterator constructors
Player player = {
vector<float>(xcords,xcords + (sizeof(xcords)/sizeof(float))), //xcords of player
vector<float>(ycords,ycords + (sizeof(ycords)/sizeof(float))), //ycoords of playe
box.ymax = 5; //create bounding box
box.ymin = 1;
box.xmax = 5;
box.xmin = 1;
1,1,1, //red, green, blue
0.0f,0.0f, //r_leg,l_leg
{4,4,4}, //number points per polygon
true,false}; //up, down
Ciò provoca diversi errori diversi relativi alla casella. Dichiarare la scatola non ha identificatore chiaro e struct o sintassi mancanti prima di '.'.
Allora ho provato solo per creare una struct Player e inizializzare i suoi membri come segue:
Player bob;
bob.r_leg = 1;
Ma questo provoca più errori, come il compilatore pensa bob non ha alcun identificativo o mancano alcuni sintassi.
Ho cercato su google il problema, ma non ho trovato nessun articolo che dimostri come inizializzare molti diversi membri di strutture nidificate all'interno della struttura (principale). Qualsiasi aiuto su questo argomento sarebbe molto apprezzato :-) !!!
Mi rendo conto che questo frammento ha già problemi come la scatola negozi Limitrofi punti in modo bisogno ymax.x e ymax.y bisogno, inizializzazione . Comunque ho provato questo, ma ho avuto gli stessi errori. (Ad esempio, ho fatto ymax.y = 5; ymax.x = 1; ecc. ecc.) – binarycreations
allegare gli errori. –
Si consiglia di inizializzarli comunque nei costruttori. Non vuoi valori non definiti. –