مساعدة مع إعلان C ++ هيكل، مع مجموعة وتعويم واحدا من أعضائها

StackOverflow https://stackoverflow.com/questions/627512

سؤال

وأنا أتساءل عما اذا كان أي شخص يمكن أن بقعة ما هو الخطأ في بلدي إعلان هيكل واستخدامها. في هذه اللحظة لدي هيكل وأتمنى لتخزين تعويم مجموعة واحدة من أعضاء انها.

قانون بلدي:

struct Player{
float x[12];
float y[12];
float red,green,blue;
float r_leg, l_leg;
int poly[3];
bool up,down;
};

وبعد ذلك حاول ملء البنية:

float xcords[12] = {1,1,1,1,1,1,1,1,1,1,1,1 };
float ycords[12] = {1,1,1,1,1,1,1,1,1,1,1,1 };
Player player = {xcords,ycords,1,1,1,2,2,true,true};

خطأ:

1>.\template_with_console.cpp(35) : error C2440: 'initializing' : cannot convert from 'float [12]' to 'float'
1>        There is no context in which this conversion is possible
1>.\template_with_console.cpp(35) : error C2440: 'initializing' : cannot convert from 'float [12]' to 'float'
1>        There is no context in which this conversion is possible
هل كانت مفيدة؟

المحلول

وصالحة تسوس إلى مؤشر إلى العنصر الأول من الصفيف في معظم السياقات كما هو الحال مع xcords وycords. لا يمكنك تهيئة البنية من هذا القبيل. لذلك، لديك لتهيئة أعضاء صراحة:

Player player = {
        {1,1,1,1,1,1,1,1,1,1,1,1 }, // xcords
        {1,1,1,1,1,1,1,1,1,1,1,1 }, // ycords
        1,1,1,                      // red, green, blue
        2,2,                        // right, left
        {0,1,2},                    // poly[3]   -- missing?          
        true,true};                 // up, down
المهيآت

وكنت في عداد المفقودين أيضا عن بولي [3] إذا فهمت بشكل صحيح. ضع في القيم المناسبة. وإلا لن يكون هناك التهيئة الافتراضية - هو أن ما تريد

نصائح أخرى

وحاول

Player player = {{1,1,1,1,1,1,1,1,1,1,1,1 },
                 {1,1,1,1,1,1,1,1,1,1,1,1 },
                 1,1,1,
                 2,2,
                 {},
                 true,true};

وأعتقد أنك كنت تتوقع التهيئة لنسخ العناصر من كل مجموعة إلى الهيكل الخاص. محاولة تهيئة عناصر الصفيف في بنية بشكل فردي، ويقول مع حلقة for.

وليس هناك "منشئ" لمجموعة تعويم التي من شأنها أن نسخ عناصر من مجموعة أخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top