如果我有这样的课程:
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
任何帮助将不胜感激。 :)
答案 0 :(得分:2)
您必须将构造函数声明为public
,否则如果您将其声明为private
成员,则不允许任何人实例化您的类。
答案 1 :(得分:1)
对我来说很好。 foo和bar是非POD类型,因为它们有一个构造函数,所以它们的成员保证在构造之后被初始化。
以后可能会因内存泄漏而覆盖数据?
如何创建条形实例?