从另一个类调用构造函数

时间:2009-09-12 00:18:52

标签: c++ constructor sse

如果我有这样的课程:

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中使用m_Data的{​​{1}} quad时,它似乎未初始化,即使它在{{1}中有值}。 :\

具体来说,这会崩溃:

bar

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

如何创建条形实例?