He creado un par de estructuras diferentes en un programa. Ahora tengo una estructura con estructuras anidadas; sin embargo, no puedo encontrar la forma de inicializarlas correctamente. Las estructuras se enumeran a continuación.¿Cómo inicializar estructuras anidadas en 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;
};
Intento intializar una estructura de jugador recién creada llamada jugador.
//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
Esto causa varios errores diferentes, relacionados con la caja. La definición de la casilla no tiene un identificador claro y una estructura o sintaxis faltante antes de '.'.
Luego probé sólo para crear una estructura Player y su inicialización de los miembros de la siguiente manera:
Player bob;
bob.r_leg = 1;
Pero esto provoca más errores, como el compilador piensa que Bob tiene ningún identificador o falta alguna sintaxis.
Busqué en Google el problema pero no encontré ningún artículo que me mostrara cómo inicializar muchos miembros diferentes de estructuras anidadas dentro de la estructura (principal). Cualquier ayuda sobre este tema sería muy apreciada :-) !!!
que darse cuenta de este fragmento ya tiene problemas como las tiendas de cuadro delimitador puntos y por lo tanto necesitan ymax.x ymax.y necesita initalising . Sin embargo, lo intenté pero obtuve los mismos errores. (es decir, hice ymax.y = 5; ymax.x = 1; etc etc.) – binarycreations
adjunte los errores. –
Debe inicializarlos en constructores de todos modos. No quieres valores indefinidos –