如果我有这样的课程:

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实例时调用foo的构造函数吗?

因为当我尝试在 bar 中使用 bar m_Data quad 时,它似乎是未初始化,即使它在 numbers [4] 中有值。 :\

具体来说,这会崩溃:

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

任何帮助将不胜感激。 :)

有帮助吗?

解决方案

您必须将构造函数声明为 public ,否则如果您将其声明为 private 成员,则不允许任何人实例化您的类。

其他提示

对我来说很好。 foo和bar是非POD类型,因为它们有一个构造函数,所以它们的成员保证在构造之后被初始化。

以后可能会因内存泄漏而覆盖数据?

如何创建条形实例?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top