Tôi đã tạo một vài cấu trúc khác nhau trong một chương trình. Tôi bây giờ có một cấu trúc với cấu trúc lồng nhau tuy nhiên tôi không thể làm việc ra làm thế nào để khởi tạo chúng một cách chính xác. Các cấu trúc được liệt kê dưới đây.Cách khởi tạo cấu trúc lồng nhau trong 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;
};
Sau đó, tôi cố gắng intialse Trình tạo cấu trúc người chơi mới được tạo là trình phát.
//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
Điều này gây ra nhiều lỗi khác nhau, liên quan đến hộp. Nói rằng hộp không có định danh rõ ràng và thiếu cấu trúc hoặc cú pháp trước '.'.
sau đó tôi cố gắng chỉ để tạo ra một cấu trúc Player và khởi thành viên của nó như sau:
Player bob;
bob.r_leg = 1;
Nhưng điều này gây ra nhiều lỗi, như trình biên dịch nghĩ bob không có định danh hoặc thiếu một số cú pháp.
Tôi đã giải quyết được sự cố nhưng tôi không tìm thấy bất kỳ bài viết nào cho thấy cách làm cho nhiều thành viên khác nhau của cấu trúc lồng nhau trong cấu trúc (cha mẹ) lồng ghép. Bất kỳ trợ giúp về chủ đề này sẽ được đánh giá rất nhiều :-) !!!
Tôi nhận ra đoạn này đã có vấn đề như các cửa hàng hộp Bounding điểm để cần ymax.x và ymax.y cần initalising . Tuy nhiên tôi đã thử điều này nhưng có cùng một lỗi. (ví dụ: tôi đã làm ymax.y = 5; ymax.x = 1; v.v.) – binarycreations
vui lòng đính kèm lỗi. –
Bạn nên khởi tạo chúng trong các hàm tạo. Bạn không muốn các giá trị không xác định. –