سؤال

وإذا كان لدي فئة مثل هذا:

typedef union { __m128 quad; float numbers[4]; } Data

class foo
{
public:
    foo() : m_Data() {}

    Data m_Data;
};

وفئة مثل هذا:

class bar
{
public:

   bar() : m_Data() {}

   foo m_Data;
}

ويسمى عند اتخاذ مثيل شريط منشئ فو ل؟

ولأنه عندما أحاول استخدام bar m_Data quad لفي bar يبدو أن غير مهيأة، على الرغم من أنها لديها القيم في numbers[4]. : \

وعلى وجه التحديد، وهذا تحطم:

m_Data.quad = _mm_mul_ps(m_Data.quad, a_Other.m_Data.quad)

وسيكون موضع تقدير أي مساعدة. :)

هل كانت مفيدة؟

المحلول

وعليك أن يعلن منشئ ليتم public، وإلا كنت عدم السماح لأي شخص إنشاء مثيل صفك إذا كنت نعلن بأنها عضو private.

نصائح أخرى

وتبدو جيدة بالنسبة لي. فو وشريط أنواع غير POD لأن لديهم منشئ، هكذا مضمونة أعضائها ليتم تهيئتها بعد بناء.

وربما يتم الكتابة البيانات في وقت لاحق من خلال تسرب الذاكرة؟

وكيف يمكنك إنشاء مثيل شريط؟

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